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方法進行控制器的初始化,但是當前控制器需要繼承控制器基類 (think\Controller )或者當前控制器繼承的類繼承了控制器基類(think\Controller ),否則initialize方法無效

 1 <?php
 2 
 3 namespace app\index\controller;
 4 
 5 use think\Controller;//繼承控制器基類后 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 }

如果不繼承控制器基類(think\Controller)的同時又使用初始化方法,可以使用__construct代替

 1 <?php
 2 
 3 namespace app\index\controller;
 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 app\index\controller;
 4 
 5 use think\Controller;
 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM