空操作
空操作是指系統在找不到指定的操作方法的時候,會定位到空操作(_empty)方法來執行,利用這個機制,我們可以實現錯誤頁面和一些URL的優化。
例如,下面我(wo)們用空操(cao)作功(gong)能來實現一(yi)個城市切換的功(gong)能。
我們只需要給City控制器類定義一個_empty (空操作)方法:
<?php
namespace app\index\controller;
class City
{
public function _empty($name)
{
//把所有城(cheng)市的操作解析到city方法
return $this->showCity($name);
}
//注(zhu)意 showCity方(fang)法(fa) 本身是 protected 方(fang)法(fa)
protected function showCity($name)
{
//和$name這個城市相關的處(chu)理
return '當前城(cheng)市' . $name;
}
}
接(jie)下(xia)來,我(wo)們(men)就可以在(zai)瀏(liu)覽器里面輸入
http://serverName/index/city/beijing/
http://serverName/index/city/shanghai/
http://serverName/index/city/shenzhen/
由于City并沒(mei)有定義beijing、shanghai或者shenzhen操作(zuo)方(fang)法(fa),因(yin)此系統會定位到空操作(zuo)方(fang)法(fa) _empty中(zhong)去(qu)解析,_empty方(fang)法(fa)的參數就(jiu)是當(dang)前URL里面的操作(zuo)名,因(yin)此會看到依次輸出的結(jie)果是:
當前城市:beijing
當前城市:shanghai
當前城市:shenzhen
V5.0.2+開(kai)始,空(kong)操作方法不需(xu)要(yao)任何參數,如果要(yao)獲(huo)取當前的操作方法名,直接(jie)調用當前請(qing)求(qiu)對象來獲(huo)取,你也可以使用依賴注入(ru)(參考請(qing)求(qiu)章節的依賴注入(ru))
文檔最后更新時間:2018-04-26 08:34:10
未解決你的問題?請到「問答社區」反饋你遇到的問題
