Yii: CMenu элементы для другого модуля
Я хотел бы сделать меню в макете, элементы которого связаны с другим модулем.
Например: пункт "Продукт", связанный с действием в модуле продукта, пункт "Сервис", связанный с действием в модуле обслуживания.
Это не будет работать, когда я установил 'url'=>('product/<controllerID>/<actionID>')
а также 'url'=>('service/<controllerID>/<actionID>')
потому что, как только мы в модуле продукта и нажмите меню "Сервис", URL становится
index.php?r=product/service/<controllerID>/<actionID>
вместо
index.php?r=service/<controllerID>/<actionID>
и это будет ошибка 404. (наверняка, потому что Сервисный Модуль не находится в Модуле Продукта, но URL делает его похожим на это).
Любое решение для этого?
2 ответа
Проверить createUrl()
документация:
URL-маршрут. Это должно быть в формате "ControllerID/ActionID". Если ControllerID отсутствует, текущий идентификатор контроллера будет иметь префикс к маршруту. Если маршрут пуст, предполагается, что это текущее действие. Если контроллер принадлежит модулю, идентификатор модуля будет добавлен к маршруту. (Если вы не хотите использовать префикс идентификатора модуля, маршрут должен начинаться с косой черты '/'.)
Эта последняя строка говорит нам все. Лучшее, что можно сделать для вас, это начать все маршруты с /
:
'url'=>array('/<moduleID>/<controllerID>/<actionID>')
Проверь это
'url'=>$this->createUrl('/<moduleId>/<controllerID>/<actionID>')