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 }
