Можно ли расширить URL-адреса и правила Yii через контроллер?
Можно ли расширять маршруты и правила URL Yii через контроллер на лету или путем расширения самого класса CController?
Я действительно застрял с этим, ничего не пробовал.
Как это сделать в / с Yii?
1 ответ
Сначала вы должны знать, для каких правил URL используются:
- Парсинг входящего URL.
urlManager
Компонент разрешает URL-адрес маршрута, чтобы Yii мог вызвать правильное действие в конкретном контроллере и модуле. - Создание URL из звонков на
createUrl()
в вашем коде.
Учитывая (1) выше, очевидно, что вы не можете добавлять правила URL в свой контроллер, если хотите использовать эти URL в своем приложении. Слишком поздно, так как Yii уже прошел процесс разрешения запроса к маршруту. Даже если вы хотите создать URL-адреса, это не имеет особого смысла, так как ваше приложение никогда их не поймет.
Правильный способ повысить динамику разбора / создания URL-адреса - использовать собственный класс правил URL-адреса. Там вы можете написать любой код, который хотите создать, и анализировать даже самые сложные URL-адреса. Тема описана в руководстве.