ThinkPHP6.0学习笔记-控制器

控制器 Controller

Mirror王宇阳
建议参考官方文档

控制器定义

控制器(controller),控制器文件存放在app/controller目录中,可以通过config/route.php配置controller_layer来改变默认的控制器目录。

创建一个控制器Test.phpapp/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_suffixtrue,这样一来就需要把所有的控制器类名改为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\appthinkphp\request对,可以直接通过使用基础控制器类的apprequest属性调用thinkphp\appthinkphp\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访问。

你可能感兴趣的:(ThinkPHP6.0学习笔记-控制器)