午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

空控制器

空控制器的概念是指當系統找不到指定的控制器名稱的時候,系統會嘗試定位空控制器(Error),利用這個機制我們可以用來定制錯誤頁面和進行URL的優化。
現在我(wo)們把(ba)(ba)前面的需求進一步,把(ba)(ba)URL由(you)原來(lai)的

http://serverName/index/city/shanghai/

變成

http://serverName/index/shanghai/

這樣更(geng)加簡單的(de)方式,如(ru)(ru)果(guo)按照傳統(tong)的(de)模式,我們必須給(gei)每個城(cheng)市定(ding)義一個控(kong)制器(qi)類(lei),然后在(zai)每個控(kong)制器(qi)類(lei)的(de)index方法里(li)面進行(xing)處理(li)。 可是如(ru)(ru)果(guo)使用空控(kong)制器(qi)功能,這個問(wen)題就可以迎刃(ren)而解(jie)了。

我們(men)可以(yi)給項目(mu)定義一個Error控(kong)制器(qi)類

<?php
namespace app\index\controller;

use think\Request;

class Error 
{
    public function index(Request $request)
    {
        //根據(ju)當(dang)前控制器名來判斷要執行(xing)那個城市的(de)操作
        $cityName = $request->controller();
        return $this->city($cityName);
    }
    
    //注(zhu)意(yi) city方(fang)法 本身是 protected 方(fang)法
    protected function city($name)
    {
        //和$name這個城市相(xiang)關的(de)處理
         return '當前(qian)城市(shi)' . $name;
    }
}

接下來,我(wo)們就可以(yi)在瀏覽(lan)器里(li)面輸入(ru)

http://serverName/index/beijing/
http://serverName/index/shanghai/
http://serverName/index/shenzhen/

由于系統(tong)并不存(cun)在beijing、shanghai或者shenzhen控制(zhi)器,因此會定(ding)位到空控制(zhi)器(Error)去(qu)執行,會看到依次(ci)輸(shu)出的結果是:

當前城市:beijing
當前城市:shanghai
當前城市:shenzhen

空(kong)控(kong)制器和空(kong)操(cao)作(zuo)還可(ke)以(yi)同時使用,用以(yi)完成更加復雜的操(cao)作(zuo)。

空(kong)控制器(qi)Error是(shi)可以定義的

// 更改(gai)默認的空控(kong)制器名(ming)
'empty_controller'      => 'MyError',

當找不到(dao)控(kong)制器的時(shi)候,就會定(ding)位到(dao)MyError控(kong)制器類進(jin)行操作(zuo)。

文檔最后更新時間:2018-04-26 08:36:20

文檔
目錄

深色
模式(shi)

切換
寬度