Замените UrlManager только на один контроллер

В моем приложении Yii 1.x UrlManager настроен для создания / использования таких URL-адресов, как content/show.html:

'urlManager'=>array
(
'class'=>'UrlManager',
'showScriptName'=>false,
'urlFormat'=>'path',
'urlSuffix'=>'.html',
'rules'=>array
(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>'=>'<controller>/<action>'
)
),

Я также переопределил CUrlManager -> UrlManager реализовать Решение Цян, что позволяет мне использовать переносы маршрутов, то есть an-action-name что указывает на стандарт anActionName,

Я хотел бы сохранить это таким образом, но я хотел бы расширить его, поэтому для одного контроллера (используется для вызовов AJAX) он не использует urlSuffix и генерирует / использует URL в этом формате: ajax/get-published-files,

Так как я — новичок (почти неосведомленный) в регулярных выражениях, я не проводил большую часть своих собственных исследований, прежде чем спрашивать, потому что я даже не знаю, где и для чего на самом деле искать.

0

Решение

Вы всегда можете сделать свой суффикс частью своего шаблона вместо вашей глобальной конфигурации

например :

    'ajax/<action:\w+>'=>'ajax/<action>',
'<controller:\w+>/<id:\d+>.html'=>'<controller>/view',
'<controller:\w+>/<action:\w+>.html'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>.html'=>'<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>.html'=>'<controller>/<action>',

и ofc отбросьте суффиксную часть вашей конфигурации urlManager

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]