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>')
Другие вопросы по тегам