【ThinkPHP框架教程·Part-06】基础、空、多级控制器

简介: 本文介绍了ThinkPHP框架中三种控制器的使用方法:基础控制器、空控制器和多级控制器。基础控制器提供了验证功能并注入了`think\App`和`think\Request`对象,推荐继承以获得更多方法。空控制器用于单应用模式下的错误提醒,定义一个Error类即可实现。多级控制器则通过在controller目录下创建子目录来实现分组管理,例如建立group目录并在其中创建Blog.php控制器,访问路径为`http://localhost:8000/group.blog`及其方法。

本章节我们来了解一下用于继承的基础控制器、空控制器和多级控制器的使用方法。

一、基础控制器

一般来说,创建控制器后,推荐继承基础控制器来获得更多的方法。

基础控制器仅仅提供了控制器验证功能,并注入了think\Appthink\Request

这两个对象后面会有章节详细讲解,下面我们继承并简单使用一下。

<?php
namespace app\controller;
use app\BaseController;
class Test extends BaseController
{
    public function index()
    {
        return '当前方法名:'.$this->request->action().',基础控制器的实际路径:'.$this->app->getBasePath();
    }
}


二、空控制器

在单应用模式下,我们可以给项目定义一个 Error 控制器类,来提醒错误;

<?php
namespace app\controller;
class Error
{
    public function index()
    {
        return '当前控制器不存在!';
    }
}


三、多级控制器

所谓多级控制器,就是在控制器 controller 目录下再建立目录并创建控制器,相当于控制器下的分组。

我们在 controller 目录下建立 group 目录,并创建 Blog.php 控制器。

而此时,我们需要访问的地址为:http://localhost:8000/group.blog

访问read方法:http://localhost:8000/group.blog/read


相关文章
|
存储 测试技术 项目管理
【北京大学 软件工程】三、软件需求
本文介绍了软件需求工程的基础概念和流程。首先定义了需求及其获取,强调需求是描述系统功能、性能等方面的要求,并需具备必要性、无歧义性、可测性、可跟踪性和可测量性五大基本性质。接着阐述了需求的分类,包括功能、性能、外部接口、设计约束和质量属性五类,并详细说明了各类需求的具体内容及示例。此外,还探讨了需求发现的技术,并分析了每种技术的应用场景与优缺点。最后,文章解释了需求规约(SRS)的概念、格式和作用,指出它是软件开发组织与用户之间的技术合同,用于指导项目管理、产品设计、测试计划和用户手册的编写。需求规约不应包含设计细节或项目规划信息,而是专注于明确系统的功能性与非功能性要求。
【北京大学 软件工程】三、软件需求
|
存储 SQL 算法
搞定了 6 种分布式ID,分库分表哪个适合做主键?
在《ShardingSphere5.x分库分表原理与实战》系列的第七篇文章中,作者探讨了分布式ID在分库分表中的重要性,以及如何利用`ShardingSphere-jdbc`的多种主键生成策略。文章介绍了`UUID`、`NanoID`、自定义雪花算法和`CosId`等策略的优缺点,并警告不要在SQL中手动拼接主键字段。此外,文章还展示了如何配置这些策略,并提醒读者`CosId`在5.2.0版本可能不可用。最后,文章讨论了如何自定义分布式主键生成算法,并强调选择策略时要考虑全局唯一性、性能和易用性。
1494 122
|
Web App开发
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
16594 0
笔记本电脑能连接WiFi但浏览器无法打开网页的解决办法
|
Web App开发 移动开发 安全
WordPress插件wp-file-manager任意文件上传漏洞(CVE-2020-25213)
WordPress插件WPFileManager中存在一个严重的安全漏洞,攻击者可以在安装了此插件的任何WordPress网站上任意上传文件并远程代码执行。
2737 1
|
前端开发
Bootstrap 5 保姆级教程(十):导航栏 & 轮播
Bootstrap 5 保姆级教程(十):导航栏 & 轮播
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物医院预约挂号系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物医院预约挂号系统的详细设计和实现(源码+lw+部署文档+讲解等)
251 1
|
XML 安全 API
AndroidManifest.xml文件综合详解
AndroidManifest.xml文件综合详解
976 2
|
存储 缓存 JavaScript
【vue2】解决Vuex刷新页面数据丢失的问题
【vue2】解决Vuex刷新页面数据丢失的问题
1133 6
|
开发框架 前端开发 JavaScript
现代前端开发中的跨平台应用框架比较与选择
本文探讨了现代前端开发中的跨平台应用框架,分析了Flutter、React Native和Ionic等框架的特点及其在不同场景下的适用性,旨在帮助开发者在选择合适框架时做出明智决策。
|
Java Maven Windows
【maven】windows安装maven
【maven】windows安装maven
365 0