dilikpulatov
@dilikpulatov
веб-программист

В Yii2 — Urlmanager rules в контроллере можно написать?

Здравствуйте!
можно в контроллере написать rules UrlManager?
не хочу в конфиге написать....так как есть много похожие урл
и в модуле как написать свои правила урл?
допустим есть модул админ имне нужно написать rules url для этого модуля....можно в модуле написать? а не в конфиге
  • Вопрос задан
  • 641 просмотр
Пригласить эксперта
Ответы на вопрос 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
можно в контроллере написать rules UrlManager

rules это правила маршрутизации. Если контроле запущен, значит правила уже сработали. Как Вы себе представляете это?

не хочу в конфиге написать....так как есть много похожие урл

язык не распознан, уточните или переведите на русский

и в модуле как написать свои правила урл?

См первый пункт, тот же парадокс, что и с контроллером. Правила url manager как раз и нужны, что бы определить какой модуль и какой контролер должен сработать. Нельзя помыть руки, а потом открыть кран.
Ответ написан
Комментировать
slo_nik
@slo_nik Куратор тега Yii
Доброй ночи.
можно в контроллере написать rules UrlManager?

Нет.
можно в модуле написать?

Создаёте конфигурационный файл для модуля, там и пишите.
не хочу в конфиге написать....так как есть много похожие урл

Сделайте так, чтобы не было дубликатов и пишите в конфигурационном файле.
Пример rules для модуля в общем конфигурационном файле:
'rules' => [
                [
                  // правиля для модуля admin
                  'class' => 'yii\web\GroupUrlRule',
                  'prefix' => 'admin',
                  'routePrefix' => 'admin',
                  'rules' => [
                     '<_a:(login|logout)>' => 'user/users/<_a>',
                     '<_m:[\w\-]+>' => '<_m>/default/index',
                     '<_m:[\w\-]+>/<id:\d+>' => '<_m>/default/view',
                     '<_m:[\w\-]+>/<id:\d+>/<_a:[\w\-]+>' => '<_m>/default/<_a>',
                     '<_m:[\w\-]+>/<_c:[\w\-]+>/<id:\d+>' => '<_m>/<_c>/view',
                     '<_m:[\w\-]+>/<_c:[\w\-]+>/<id:\d+>/<_a:[\w\-]+>' => '<_m>/<_c>/<_a>',
                     '<_m:[\w\-]+>/<_c:[\w\-]+>/<_a:[\w\-]+>' => '<_m>/<_c>/<_a>',
                     '<_m:[\w\-]+>/<_c:[\w\-]+>' => '<_m>/<_c>/index',
                  ],
                ],
                // тут rules для остального сайта
            ],
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы