控制器 Controller
Mirror王宇阳
建议参考官方文档
控制器定义
控制器(controller),控制器文件存放在app/controller
目录中,可以通过config/route.php
配置controller_layer
来改变默认的控制器目录。
创建一个控制器Test.php
:app/controller/Test.php
namespace app\controller;
class Test
{
public function index()
{
return "控制器:Test.php";
}
}
双单词(首字母大写)组合的控制器:HelloWorld,可以通过两种访问构造进行同等效果的访问
http://thinkphp6.0/index.php/helloworld http://thinkphp6.0/index.php/hello_world
引入控制器后缀
避免引入同名模型类的冲突,在route.php
配置controller_suffix
为true
,这样一来就需要把所有的控制器类名改为TestController
,文件名也随同改动TestController.php
渲染输出
-
return直接输出
Thinkphp中采用了
return
语法直接输出 -
JSON输出:引入
json
函数,输出数组数据$data = array ('a'=>1 , 'b'=>2 , 'c'=>3); return json($data);
-
渲染模板输出
return view();
使用thinkphp系统提供的
halt
助手函数进行中断输出测试halt('中断测试');
基本控制器
创建一个控制器文件后,通过继承"基础控制器类"app\BaseController
(默认应用文件)获更多的方法
基本控制器提供了控制器的验证功能;注入了thinkphp\app
、thinkphp\request
对,可以直接通过使用基础控制器类的app
、request
属性调用thinkphp\app
、thinkphp\request
对象实例
use app\BaseController;
class Test = extentds BaseController
{
public function index()
{
//返回当前方法名
return $this->request->action();
//返回实际路径
return $this->app->getBasePath();
}
}
同时BaseController
类中包含控制器验证功能,批量验证以及初始化initialize
方法
空控制器
空控制器的定义是指当系统找不到指定的控制器名称的时候,系统会尝试定位应用中的空控制器Error
类;该机制用来定制错误页面和URL的优化
class Error
{
public function index()
{
return "当前访问控制器不存在"
}
}
多级控制器
定义:在控制器controller
目录中再建立目录并创建控制器;创建app\controller\group\Blog.php
目录和文件(控制器)
class Blog
{
public function index()
{
return 'index';
}
public function read()
{
return 'read';
}
}
URL访问:http://thinkphp/group.blog/read
就是通过group.blog
访问控制器(controller)目录中group目录中的blog文件;此方法也可以多级迭代,比如在group创建klii目录中的Klii.php,构造group.klii.Klii
访问。