Вопрос по правилу роутинга

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
volkoff
Сообщения: 40
Зарегистрирован: 2015.05.26, 17:03

Вопрос по правилу роутинга

Сообщение volkoff »

Дано :
После стандартных правил

Код: Выделить всё

'<controller:\w+>/<id:\d+>'=>'<controller>',
 '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',    
 '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
 
было добавлено правило:

Код: Выделить всё

'/site/study/<course:\w+>/<part:\w+>/<lesson:\w+>'=>'/site/study/',
И при передаче всех 3 параметров все работает как надо:
Изображение

Но если не передать 2 параметра а не 3 , он их парсит как пара "ключ-значение"
Изображение


Что прописать в правилах роутинга, (или в самом action), чтоб при передаче меньшего количества значений, недостающие были, например false?

Спасибо
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Вопрос по правилу роутинга

Сообщение ElisDN »

Код: Выделить всё

'study/<course:\w+>/<part:\w+>/<lesson:\w+>' => 'site/study',
'study/<course:\w+>/<part:\w+>' => 'site/study',

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

Код: Выделить всё

public function actionStudy($course, $part, $lesson = null)
Такие вещи дописывайте ДО стандартных правил, а не после.
Аватара пользователя
volkoff
Сообщения: 40
Зарегистрирован: 2015.05.26, 17:03

Re: Вопрос по правилу роутинга

Сообщение volkoff »

ElisDN писал(а): 2017.04.19, 12:46 ...
А, точно. Просто правило для 2-х параметров еще прописать.
Благодарю!
Работает
Изображение
Ответить