2014-09-25 3 views
0

Мой Yii приложение 1.x имеет UrlManager сконфигурировано для создания/использования URL-адреса, такие как content/show.html:Изменить UrlManager только для одного контроллера

'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 реализовать Qiang's solution, что позволяет мне использовать перенос маршрутов, то есть an-action-name, что указывает на стандарт anActionName.

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

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

ответ

1

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

, например:

'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 конфигурации

+0

Man, вы» re genious! :] Спасибо ... – trejder

+1

Я пытался найти плагин, который позволял вам использовать несколько суффиксов, но правила становятся массивом в массиве на основе их суффикса/префикса, но всего за 1 контроллер он казался немного избыточным – DarkMukke

Смежные вопросы