1、怎么自定义访问控制器层?
在自定义配置文件config/config.php中添加:
// 默认的访问控制器层
'url_controller_layer' => 'controller',
可以将'controller'改为任意自定义名,如'api'。
这时也要把app\index\下的controller文件夹名改为api,api下的所有控制器的命名空间也要更改。
2、怎么创建多级控制器?
在app\index\controller文件夹下添加文件夹如'user',在user中添加Demo.php文件。
那么要在url中访问其中的index方法就要输入:
tp5.com/index/user.demo/index
3、为什么要创建空操作和空控制器?
如果在url中访问了一个不存在的方法,为了不报错,而显示自定义的提示,就要在控制器中写一个如下的方法:
public function _empty($method)
{
return '你访问的方法'.$method.'不存在';
}
如果在url中访问了一个不存在的控制器,为了不报错,而显示自定义的提示,就要在thinkphp\convention.php中找到’empty_controller' => 'Error',将其复制到自定义config.php中,'Error'可自己改。
然后在app\index\controller文件夹下新建一个Error.php文件,最好在其中同样填入如下代码:
public function _empty($method)
{
return '你访问的方法'.$method.'不存在';
}
4、怎么在控制器中使用trait?
例如在class Index类中开头写:
use \traits\controller\Jump;
就引入了traits中Jump控制器,该控制器中有个success方法,我们现在想用这个方法,所以:
public function demo($name)
{
if ($name=='bilibili'){
$this->success('正在跳转到哔哩哔哩动画','http://www.bilibili.com');
}
}
在url中就可以写:
tp5.com/index/index/demo/name/bilibili
就可以访问了。
5、什么是单一模块?什么时候需要使用它?
如果应用比较简单,不需要划分模块的时候,就可以使用单一模块。
单一模块,就是没有模块,模块就是应用,应用就是模块。
开启单一模块:
在\thinkphp\convention中找到'app_multi_module' => true,复制到自己的config.php中,修改true为false,即可。
然后把index模块下的东西全部移到application下。其他相应的如命名空间也要更改。