Thinkphp5基礎——08 控制器

TimChen666發表於2018-12-11

前置操作


設定 beforeActionList屬性

指定某個方法為其他方法的前置操作,陣列鍵名為需要呼叫的前置方法名,無值的話為當前控制器下所有方法的前置方法。


['except' => '方法名,方法名']

表示這些方法不使用前置方法



['only' => '方法名,方法名']

表示只有這些方法使用前置方法。


例子

下面例子,訪問hello方法時,將會先執行first方法。


class Index extends Controller
{
	protected $beforeActionList = [
	  'first'  =>  ['only'=>'hello'],
	];
    
	protected function first()
	{
	  echo 'first<br/>';
	}
    
	public function hello()
	{
	  return 'hello';
	}

}





頁面跳轉


使用方法

  1. 繼承think\Controller

  2. 呼叫success()、error()方法


模板相關


預設模板

地址: …/application/tpl/dispatch_jump.tpl

可以在config目錄下的app.php裡面修改'dispatch_error_tmpl'以及'dispatch_success_tmpl'屬性。


模板變數

$data	要返回的資料

$msg	頁面提示資訊

$code	返回的code

$wait	跳轉等待時間 單位為秒

$url	跳轉頁面地址





空操作

系統在找不到指定的操作方法的時候,會自動執行空操作 _empty 方法。



小例子


<?php
namespace app\index\controller;

class City 
{
	public function _empty($name)
	{
	  //把所有城市的操作解析到city方法
	  return $this->showCity($name);
	}
    
	//注意 showCity方法 本身是 protected 方法
	protected function showCity($name)
	{
	  //和$name這個城市相關的處理
	  return '當前城市' . $name;
	}
}





空控制器

系統找不到指定的控制器名稱的時候,系統會嘗試定位空控制器(Error)。

譬如,當我們訪問不存在的index模組下的ppp控制器,系統將執行index模組下的Error控制器檔案。

相關文章