2013-08-31 3 views
0

В моем тестовом приложении Yii у меня есть 2 типа URL. Пример, как показано ниже: -Есть ли правило urlManager приоритета?

http://localhost/testapp/index.php?r=post/view&id=1&slug=maximizing-profit 
http://localhost/testapp/index.php?r=category/view&slug=investment 

Первый URL имеет 2 параметра; id и slug, а второй параметр имеет только slug параметр

И в моем urlManager, у меня есть 2 правила

<controller:\w+>/<action:\w+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action> 
<controller:\w+>/<action:\w+>/<id:\d+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action> 

С этим правилом, мой первый URL, кажется, неправильный формат которой она» будет отображаться как

http://localhost/testapp/post/view/maximizing-profit?id=1 

Второй URL-адрес на e другие отображаемые руки штрафы

http://localhost/testapp/category/view/investment 

Есть ли правило в приоритете в urlManager, за которым мы должны следовать?

+0

Возможный дубликат [Yii framework: неправильное создание URL-адресов] (http://stackoverflow.com/questions/17669643/yii-framework-wrong-creating-urls). Такие вопросы появляются каждые несколько недель. Пожалуйста, сделайте некоторое исследование здесь на SO в первую очередь. –

ответ

0

Будет использоваться любое правило, соответствующее первому URL.

В вашем случае просто переключите порядок обоих правил. Это связано с тем, что ваши правила слизня также совпадают с номерами, включая те, у которых только ID. Если вы переключите правила, сначала будут записаны те, у которых цифры в виде идентификаторов, а затем те, у которых нет числовой идентификатор.

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