Вопрос по правилам маршрутизации urlManager

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Avron
Сообщения: 54
Зарегистрирован: 2012.05.18, 17:05

Вопрос по правилам маршрутизации urlManager

Сообщение Avron »

Есть такая структура модулей
modules

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

|- user
    |- controllers
        |-userController
|- category
    |- controllers
        |-userController

и т.д.
Нужно сделать маршрут, чтобы не в адресе было:

вместо

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

"/user/user/login"
--->

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

"/user/login"
вместо

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

"/category/category/main"
--->

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

"/category/main"
По логике создаю следующее правило:

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

'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ...
		'/<_m:\w+>/<_a\w+>' => '/<_m>/<_m>/<_a>'
            ]
]
Получаю сообщение:

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

preg_match(): Compilation failed: two named subpatterns have the same name at offset 33
что означает, что нельзя использовать два раза в одном паттерне.

Как решить?
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Вопрос по правилам маршрутизации urlManager

Сообщение Dominus »

Для user

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

'users' => 'user/user/index', // /users
'user/<id:\d+>/<_a:[\w\-]+>' => 'user/user/<_a>', // /user/1/view
'user/<_a:[\w\-]+>' => 'user/user/<_a>', // /user/login
Для category аналогично

Или используя GroupUrlRule

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

//...
'rules' => [
    new \yii\web\GroupUrlRule([
        'prefix' => 'user',
        'rules' => [
            '' => 'user/index', // /user
            '<id:\d+>/<_a:[\w\-]+>' => 'user/<_a>', // /user/1/view
            '<_a:[\w\-]+>' => 'user/<_a>', // /user/login
        ]
    ]),
    //... другие правила
],
//...
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Avron
Сообщения: 54
Зарегистрирован: 2012.05.18, 17:05

Re: Вопрос по правилам маршрутизации urlManager

Сообщение Avron »

Спасибо, раз нет решения с одним правилом для всех модулей, значит будет делать маршрут для главного контроллера каждого модуля
Ответить