yii url manager - PullRequest
       0

yii url manager

0 голосов
/ 29 ноября 2011

Я пытаюсь сопоставить этот URL:

http://www.example.org/en/site/page/id/1

с этими правилами:

'rules'=>array(
      '/'=>'site/index',      
      '<lang>/<controller:\w+>'=>'<controller>/index', 
      '<lang>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',      
      '<lang>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>/<id>',   
      '<lang>'=>'/',   
),

Я думаю, что это действительно, но не работает.

Ответы [ 3 ]

3 голосов
/ 29 ноября 2011

Ваш URL содержит строку / текст "id" http://www.example.org/en/site/page/id/1, который не требуется ...

Попробуйте URL с

http://www.example.org/en/site/page/1

Или добавьте еще один маршрут как

'<language:\w+>/<controller:\w+>/<action:\w+>/id/<id:\d+>' =>'<controller>/<action>/<id>',

Должно работать в обоих направлениях.

0 голосов
/ 29 ноября 2011

Попробуйте перенести более конкретные правила наверх.

'rules'=>array(
      '<lang:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>/<id>',                  
      '<lang:\w+>/<controller:\w+>/<action:\w+>'=>'<controller>/<action>',      
      '<lang:\w+>/<controller:\w+>'=>'<controller>/index', 
      '<lang:\w+>'=>'/',   
      '/'=>'site/index',      
),

[edit] исправлено регулярное выражение lang * кредиты для Moz Morris.

0 голосов
/ 29 ноября 2011

Похоже, что языковые параметры маршрутизации не в правильном формате.Попробуйте это:

'rules' => array(
  '/'                                                     =>'site/index',      
  '<language:\w+>/<controller:\w+>'                       =>'<controller>/index', 
  '<language:\w+>/<controller:\w+>/<action:\w+>'          =>'<controller>/<action>',      
  '<language:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>' =>'<controller>/<action>/<id>',   
  '<language:\w+>'                                        =>'/',   
),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...