空操作
空操作是指系統在找不到指定的操作方法的時候,會定位到空操作(_empty
)方法來執行,利用這個機制,我們可以實現錯誤頁面和一些URL的優化。
例如,下面我們用空操作功能來實現一個城市切換的功能。
我們只需要給City控制器類定義一個_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;
}
}
接下來,我們就可以在瀏覽器里面輸入
http://serverName/index/city/beijing/
http://serverName/index/city/shanghai/
http://serverName/index/city/shenzhen/
由于City并沒有定義beijing、shanghai或者shenzhen操作方法,因此系統會定位到空操作方法 _empty中去解析,_empty方法的參數就是當前URL里面的操作名,因此會看到依次輸出的結果是:
當前城市:beijing
當前城市:shanghai
當前城市:shenzhen
V5.0.2+
開始,空操作方法不需要任何參數,如果要獲取當前的操作方法名,直接調用當前請求對象來獲取,你也可以使用依賴注入(參考請求章節的依賴注入)
文檔最后更新時間:2018-04-26 08:34:10
未解決你的問題?請到「問答社區」反饋你遇到的問題