Последовательность правил

Мое приложение не работает правильно с моими входными параметрами.

У меня есть 2 правила в конфигурации urlManager:

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

'<controller:\w+>/<action:\w+>/<factor:\w+>/<ids:((id\d+)|\d)+>'=>'<controller>/<action>'

В моем действии я пробую 2 входа: id12id78 а также 87(любой номер).

При первом вводе действие получает id12id78, но если я попробую второй ввод, мой $ids Параметр пуст.

Как я могу исправить ошибку?

1 ответ

Ну ничего странного

  • id12id78: будет применено второе правило: $ids => id12id78
  • 87: первое правило будет применено: $id => 87

Я не думаю, что вам нужны разные параметры здесь, вы должны использовать только idНапример:

'<controller:\w+>/<action:\w+>/<factor:\w+>/id<id:\d+>'=>'<controller>/<action>',   
'<controller:\w+>/<action:\w+>/<factor:\w+>/<id:\d+>'=>'<controller>/<action>',
Другие вопросы по тегам