Url Rules в расширении

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Url Rules в расширении

Сообщение porcelanosa »

Задача: в расширении добавить правила для urlManager - которые бы при подключении работали.
В качестве примера берем расширение Yii2-user где есть модули в админке со своими путями.

Правила прописаны в виде переменной в файле Module.php в корневой папке расширения

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

public $urlPrefix = 'user';
/** @var array The rules to be used in URL management. */
public $urlRules = [
   '<id:\d+>'                               => 'profile/show',
   // .....  и тут еще много
];
в файле Bootstrap.php - помимо других настроек есть вот такой код:

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

$configUrlRule = [
                    'prefix' => $module->urlPrefix,
                    'rules'  => $module->urlRules,
                ];
                if ($module->urlPrefix != 'user') {
                    $configUrlRule['routePrefix'] = 'user';
                }
                $configUrlRule['class'] = 'yii\web\GroupUrlRule';
                $rule = Yii::createObject($configUrlRule);
                $app->urlManager->addRules([$rule], false);

Делаем все точно так же.
Кстати механизм добавления ссылок обсуждался еще давным давно - 2011 quing и samdark - - практически тоже самое.
Делаем тоже самое.
Но никак.
Добавила модуль в bootstrap

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

'bootstrap'  => ['log', 'posts'],
- так на всякий случай.
В Debug панели вижу (UPD: yii\web\GroupUrlRule - везде вылезает )
Изображение
Урлы не работают - если добавить вручную config/main.php - то все ОК
Изображение
В чем может быть проблема?
Есть ли другая возможность как-то добавить свои правила для расширения?
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: Url Rules в расширении

Сообщение Dominus »

Я определяю правила внутри модулей так:
https://github.com/Dominus77/yii2-advan ... ap.php#L32
https://github.com/Dominus77/yii2-advan ... in.php#L14
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Ответить