Yii2 在模組內對映 Controller 到其它控制器

Wi1dcard發表於2019-06-20

上文講解關於如何對映 Action,本文講解如何對映 Controller。

0x00 實現

首先,在你的 Module 裡,定義一個 $controllerRedirectMap 變數。

public $controllerRedirectMap = [];

重寫 createControllerByID 方法。

public function createControllerByID($id)
{
    if(isset($this->controllerRedirectMap[$id])) {
        $id = $this->controllerRedirectMap[$id];
    }
    return parent::createControllerByID($id);
}

0x01 用法

public $controllerRedirectMap = [
    'foo' => 'bar' // 訪問 `module/foo/index` 將會被重定向至 `module/bar/index`
    'foo/bar' => 'bar/foo' // 訪問 `module/foo/bar/index` 將會被重定向至 `module/bar/foo/index`
];

我感謝自己平凡,敢愛敢恨沒負擔。
我感謝自己不凡,可愛可恨都包攬。

相關文章