空操作
空操作是指系統(tǒng)在找不到指定的操作方法的時(shí)候,會(huì)定位到空操作(_empty
)方法來(lái)執(zhí)行,利用這個(gè)機(jī)制,我們可以實(shí)現(xiàn)錯(cuò)誤頁(yè)面和一些URL的優(yōu)化。
例如,下面我們用空操作功能來(lái)實(shí)現(xiàn)一個(gè)城市切換的功能。
我們只需要給City控制器類定義一個(gè)_empty
(空操作)方法:
<?php
namespace app\index\controller;
class City
{
public function _empty($name)
{
//把所有城市的操作解析到city方法
return $this->showCity($name);
}
//注意 showCity方法 本身是 protected 方法
protected function showCity($name)
{
//和$name這個(gè)城市相關(guān)的處理
return '當(dāng)前城市' . $name;
}
}
接下來(lái),我們就可以在瀏覽器里面輸入
http://serverName/index/city/beijing/
http://serverName/index/city/shanghai/
http://serverName/index/city/shenzhen/
由于City并沒(méi)有定義beijing、shanghai或者shenzhen操作方法,因此系統(tǒng)會(huì)定位到空操作方法 _empty中去解析,_empty方法的參數(shù)就是當(dāng)前URL里面的操作名,因此會(huì)看到依次輸出的結(jié)果是:
當(dāng)前城市:beijing
當(dāng)前城市:shanghai
當(dāng)前城市:shenzhen
V5.0.2+
開(kāi)始,空操作方法不需要任何參數(shù),如果要獲取當(dāng)前的操作方法名,直接調(diào)用當(dāng)前請(qǐng)求對(duì)象來(lái)獲取,你也可以使用依賴注入(參考請(qǐng)求章節(jié)的依賴注入)
文檔最后更新時(shí)間:2018-04-26 08:34:10
← 跳轉(zhuǎn)和重定向
空控制器 →
未解決你的問(wèn)題?請(qǐng)到「問(wèn)答社區(qū)」反饋你遇到的問(wèn)題