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

Posted Zero_Adam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习相关的知识,希望对你有一定的参考价值。

学习自:李炎恢

04. 控制器定义

在这里插入图片描述还可以继承controller类的基类:
注意,首字母要大写!

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

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

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

在这里插入图片描述
这样就好了
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述这方法以前是不支持的,但是修改配置之后就支持了,同时hello_world依旧支持。

在这里插入图片描述

1. 修改根命名空间:

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

在这里插入图片描述因为修改了跟命名空间,所以,这里namespace要修改,

在这里插入图片描述

2. 渲染输出

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

在这里插入图片描述
我们需要用json来输出。
在这里插入图片描述

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

在这里插入图片描述

1. 使用模板输出

在这里插入图片描述
在这里插入图片描述
输入看看,他强制我们下面这里建立一个模板

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

在这里插入图片描述
好!!!
默认是html格式输出
在这里插入图片描述

在这里插入图片描述
如果我们修改默认输出格式为json。那么我们输出数组格式就不用json($data)。这样了,因为默认就是json格式了啊。
在这里插入图片描述平时还是要修改回来的,这里只是演示一下而已。
在这里插入图片描述

2. 继承controller

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

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

在这里插入图片描述但是,如果没有继承controller类的话,也就无从谈起初始化了。

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

这就是继承的好处。。

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

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

05 控制器操作:

1. 前置操作:

在这里插入图片描述

<?php


namespace app\\controller;
use think\\Controller;

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

    # 这三个方法不是直接对外公开的。所以弄成 protected方法,并且就不用return,用echo了。
    protected function first(){
        echo 'first11111<br>';
    }

    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方法的内容。

在这里插入图片描述在这里插入图片描述
那怎么办么?。。我们用另外一种方法;

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

在这里插入图片描述就验证的 second 不在 one 的时候使用。

在这里插入图片描述

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

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

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

2. 跳转和重定向:

也是需要继承Controller这类。
在这里插入图片描述
一般就这两种方法:失败也会返回上次的目录,就是上次访问的,尽管我们没有写。都是上一层,这个有点迷,,,有可能会是死循环,这个自己在开发的时候要注意,多调试一下。

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

3. 空方法和空控制器:

在这里插入图片描述

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

也是需要继承 Controller类的

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

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

在这里插入图片描述

以上是关于ThinkPHP学习 --- 04控制器定义 --------------05控制器操作 -----------------学习的主要内容,如果未能解决你的问题,请参考以下文章

视频学习笔录---ThinkPHP---thinkphp拓展之空操作

thinkPHP学习记录4

04 tp6 的查数据 findselectfindOrEmptyfindOrFailtoArrayselectOrFailvaluecolumn《ThinkPHP6 入门到电商实战》

ThinkPHP学习——控制器_Action参数绑定

02 控制器《ThinkPHP6 入门到电商实战》

掌握Thinkphp3.2.0----视图