一般来说,创建控制器后,推荐继承基础控制器来获得更多的方法;
基础控制器仅仅提供了控制器验证功能,并注入了think\App和think\Request;
namespace app\controller;
use app\BaseController;
class Test extends BaseController
{
public function index()
{
//返回实际路径
echo $this->app->getBasePath();
echo "<br>";
//返回当前方法名
echo $this->request->action();
}
}
空控制器的概念是指当系统找不到指定的控制器名称的时候,系统会尝试定位当前应用下的空控制器(Error)类,利用这个机制我们可以用来定制错误页面和进行URL的优化。
在单应用模式下,我们可以给项目定义一个 Error 控制器类,来提醒错误;
Error.php
<?php
namespace app\controller;
class Error
{
public function index()
{
return '当前控制器不存在!';
}
}
控制器不存在即可触发
将index替换为下面的方法
public function __call($method, $args)
{
echo print_r($method);
echo "<br>";
echo print_r($args);
}
所谓多级控制器,就是在控制器 controller 目录下再建立目录并创建控制器,我们在 controller 目录下建立 group 目录,并创建 Blog.php 控制器,而此时,我们需要访问的地址为:http://localhost:8506/group.blog
以及http://localhost:8506/group.blog/read