我有一个 SearchModule.php 有以下内容:
class SearchModule extends CWebModule
{
// function init() { }
/**
* @return array Правила роутинга для текущего модуля
*/
function getUrlRules()
{
$customController = (Yii::app()->theme->getName() == 'test' ? 'Test' : '') . '<controller>';
return array(
$this->id.'/<controller:\w+>/<action:(SupportBlock)>/<countryId:\d+>' => $this->id.'/' . $customController . '/<action>',
$this->id.'/<controller:\w+>/<action:(SupportBlock)>/<countryId:\d+>/<cityId:\d+>' => $this->id.'/' . $customController . '/<action>',
$this->id.'/visas' => $this->id.'/visas/fullVisasInfo',
);
}
}
我想弄清楚的是如果我的主题设置为“测试”,如何使用另一个控制器。现在它有名为 HotelsController 或 LocationsController 的搜索控制器。我想要实现的是,如果主题名称设置为“test”,它应该将所有请求从相同的 URL 路由到 TestHotelsController 或 TestLocationsController(/search/hotels 应该路由到 TestHotelsController 而不是 HotelsController)。
我已经尝试通过将“测试”附加到路由表的第二部分来做到这一点,但这似乎没有做任何事情。