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