ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习

目录:

  • 04. 控制器定义
    • 1. 修改根命名空间:
    • 2. 渲染输出
      • 1. 使用模板输出
      • 2. 继承controller
    • 3. 设置debug模式(报错):
  • 05 控制器操作:
    • 1. 前置操作:
    • 2. 跳转和重定向:
    • 3. 空方法和空控制器:

学习自:李炎恢

04. 控制器定义

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第1张图片还可以继承controller类的基类:
注意,首字母要大写!

在这里插入图片描述在这里插入图片描述

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第2张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第3张图片

在这里插入图片描述
如果有 大写的情况呢?

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第4张图片
这样就好了
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第5张图片在这里插入图片描述这方法以前是不支持的,但是修改配置之后就支持了,同时hello_world依旧支持。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第6张图片

1. 修改根命名空间:

在本目录tp5.1下,建立一个文件夹.env

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第7张图片因为修改了跟命名空间,所以,这里namespace要修改,

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第8张图片

2. 渲染输出

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第9张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第10张图片

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第11张图片
我们需要用json来输出。
在这里插入图片描述

这个,,,就是火狐浏览器,才是这样输出json格式的数据的,其实没什么,也是长知识了,见到这样,就知道是json格式的数据了。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第12张图片

1. 使用模板输出

在这里插入图片描述
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第13张图片
输入看看,他强制我们下面这里建立一个模板

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第14张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第15张图片

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第16张图片
好!!!
默认是html格式输出
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第17张图片

在这里插入图片描述
如果我们修改默认输出格式为json。那么我们输出数组格式就不用json($data)。这样了,因为默认就是json格式了啊。
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第18张图片平时还是要修改回来的,这里只是演示一下而已。
在这里插入图片描述

2. 继承controller

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第19张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第20张图片

我在index这个控制器中 重写了 initialize,我只要运行了这个类的任何一个方法,都会调用这个方法的。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第21张图片但是,如果没有继承controller类的话,也就无从谈起初始化了。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第22张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第23张图片

这就是继承的好处。。

3. 设置debug模式(报错):

改为true
在这里插入图片描述

05 控制器操作:

1. 前置操作:

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第24张图片




namespace app\controller;
use think\Controller;

class Before  extends Controller
{
     
	
    # 这个就是 预定义的那个,
    protected $beforeActionList = [
        'first'
    ];

    # 这三个方法不是直接对外公开的。所以弄成 protected方法,并且就不用return,用echo了。
    protected function first(){
     
        echo 'first11111
'
; } protected function second(){ echo 'second'; } protected function third(){ echo 'third'; } public function index(){ return 'aaa'; } public function one(){ return "one"; } public function two(){ return "two"; } }

我们上面绑定的是 first。然后我们访问不同的one,two,都会顺带先执行first方法的内容。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第25张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第26张图片
那怎么办么?。。我们用另外一种方法;

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第27张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第28张图片

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第29张图片就验证的 second 不在 one 的时候使用。

在这里插入图片描述

我测试后发现: 不用非是protected方法,而且不用局限于first.second。那些 index, one two 都是可以这样前置方法的,只要讲return换成 echo。 return是不行的。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第30张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第31张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第32张图片

这就是 控制器的 前置操作。 比 初始化 更加灵活,可选择性大,

2. 跳转和重定向:

也是需要继承Controller这类。
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第33张图片
一般就这两种方法:失败也会返回上次的目录,就是上次访问的,尽管我们没有写。都是上一层,这个有点迷,,,有可能会是死循环,这个自己在开发的时候要注意,多调试一下。

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第34张图片ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第35张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第36张图片

3. 空方法和空控制器:

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第37张图片

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第38张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第39张图片

也是需要继承 Controller类的

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第40张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第41张图片
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第42张图片在这里插入图片描述

在这里插入图片描述
ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第43张图片

ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习_第44张图片

你可能感兴趣的:(think,PHP学习,think,PHP,开发)