TP5.1 控制器初始化方法注意事项

Posted murraybin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP5.1 控制器初始化方法注意事项相关的知识,希望对你有一定的参考价值。

tp5.1 初始化方法是initialize,不是_initialize,tp5.0 初始化方法_initialize

Thinkphp的控制器和模型初始化不起作用

初始化方法的注意事项 :

a)使用初始化方法必须继承Controller控制器类

b)输出必须使用echo,return输出是不会显示的

c)对于tp5.0版本,控制器初始化方法是_initialize(),模型的初始化方法是initialize()

d)对于5.1版本,控制和模型初始化的方法都是initialize()

 

在Tp5.1中可以使用initialize方法进行控制器的初始化,但是当前控制器需要继承控制器基类 (thinkController )或者当前控制器继承的类继承了控制器基类(thinkController ),否则initialize方法无效

 1 <?php
 2 
 3 namespace appindexcontroller;
 4 
 5 use thinkController;//继承控制器基类后 initialize 方法才能生效
 6 
 7 class Index extends Controller
 8 {
 9     public function initialize()
10     {
11         echo ‘initialize --‘;
12     }
13     public function index()
14     {
15         echo ‘-- index‘;
16     }
17 }

如果不继承控制器基类(thinkController)的同时又使用初始化方法,可以使用__construct代替

 1 <?php
 2 
 3 namespace appindexcontroller;
 4 
 5 class Index
 6 {
 7     public function __construct()
 8     {
 9         echo ‘__construct --‘;
10     }
11     public function index()
12     {
13         echo ‘-- index‘;
14     }
15 }

如果initialize方法和__construct同时存在于当前控制器时,仅有__construct方法生效;被继承的类若使用__construct方法当前控制器又有需要的话也需要使用__construct方法才行

 1 <?php
 2 
 3 namespace appindexcontroller;
 4 
 5 use thinkController;
 6 
 7 class Index extends Controller
 8 {
 9     public function __construct()
10     {
11         echo ‘__construct --‘;
12     }
13     public function initialize()
14     {
15         echo ‘initialize --‘;
16     }
17     public function index()
18     {
19         echo ‘-- index‘;
20     }
21 }

 

以上是关于TP5.1 控制器初始化方法注意事项的主要内容,如果未能解决你的问题,请参考以下文章

tp5.1在phpstudy环境下不支持模块/控制器/方法访问,404

TP5.1:模板赋值与变量输出

TP5.1 登录 配置是否登录公共函数的方法(完整的登录案例)

tp5.1 在子类控制器中获取父类渲染到模板的变量

TP5.1 分页(带参数传递)

TP5.1 layui 分类二级列表(同页显示)