urlManager и модули

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
SSL1984
Сообщения: 3
Зарегистрирован: 2019.01.15, 20:36

urlManager и модули

Сообщение SSL1984 »

Yii2 advanced. Через Gii сделал модуль в backend, добавил модель, потом в CRUD Generator сделал контроллеры, модели и вьюхи.
Всё в файлах есть.
В main.php добавил модуль
'modules' => [
'handbooks' => [
'class' => 'app\modules\handbooks\module',
], ...
А в правилах сделал
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => array(
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<module:\w+>/<controller:\w+><action:\w+>' => '<module>/<controller>/<action>'
),
],
При обращении Домен/модуль - идёт на дефолтный контроллер модуля.
При обращении к нужному контроллеру модуля /handbooks/ContactsType пишет 404
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: urlManager и модули

Сообщение someweb »

А что вы хотите получить в итоге?
Роуты controller/action и module/controller/action работают и без правил.
Только надо запрашивать как /handbooks/contacts-type
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: urlManager и модули

Сообщение andku83 »

SSL1984 писал(а): 2019.01.15, 21:01

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

                '<module:\w+>/<controller:\w+><action:\w+>' => '<module>/<controller>/<action>'
Обратите внимание на то что в левой части у вас только один "/" - и как UrlManager должен понять где разделитель?!

Можно до правила:

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

	'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
добавить:

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

                '<module:(handbooks|other-module-name)>/<controller:\w+> => '<module>/<controller>/index'
SSL1984
Сообщения: 3
Зарегистрирован: 2019.01.15, 20:36

Re: urlManager и модули

Сообщение SSL1984 »

Спасибо. И правда пропустил слеш слева
Ответить