空操作

空操作是指系統(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

文檔
目錄

深色
模式

切換
寬度