У меня есть SearchModule.php имеет следующее:getUrlRules - переход на контроллер
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. То, что я пытаюсь достичь, - это то, что если имя темы задано для «теста», оно должно направлять все запросы в TestHotelsController или TestLocationsController с ИДЕННОГО URL (/ поиск/отели должны направляться в TestHotelsController вместо HotelsController).
Я попытался сделать это, добавив «Тест» ко второй части таблицы маршрутизации, но это, казалось, ничего не делало.
Это не похоже на трюк, поскольку он не вызывает действия TestController. Я могу позвонить им напрямую, однако с этой маршрутизацией он продолжает звонить в стандартный HotelsController. Я немного изменил имя функции и контроллера, и когда я прямо звоню/search/hotelsTest, он правильно вызывает действие тестового контроллера, ОН ХОТЕЛЕТ, что он не переключается на вызов по мере необходимости. –