Как опять победить URLmanager?

возник такой вопрос вот правила

'serials/<slug:\w*>' =>  'serial/category/list',
    'serials/<id>'   =>  'serial/category/oneserial',


пишу такие ссылки

Yii::$app->urlManager->createUrl(['/serial/category/oneserial','id'=>$model->slug_serial]) //ссылка формируется такая /serials/serial-nazvanie-seriala
     Yii::$app->urlManager->createUrl(['/serial/category/list','slug'=>$ct->slug_category])//ссылка формируется такая /serials/сategory


но если добавить тире к примеру /serials/nazvanie-сategory то в адресной строке получаю serials?slug=nazvanie-category пытался решить так

'serials/<slug:\w*>' =>  'serial/category/list',
    'serials/<slug:[\w_\-]+>' =>  'serial/category/list',
    'serials/<id>'   =>  'serial/category/oneserial',


теперь вот /serials/nazvanie-сategory это получается хорошо но вот этот адрес /serials/serial-nazvanie-seriala теперь использует тоже второе правило парсит на этот адрес serial/category/list что выбрасывает на главную страницу и если честно 1 я не понимаю почему и 2 как это исправить.
  • Вопрос задан
  • 190 просмотров
Решения вопроса 1
@polar-bear
Вы пытаетесь открыть и категорию и сам сериал, в одном префиксе 'serials'. При создании url проблем нет, но при парсинге yii берет первое подходящее правило.
Создайте лучше класс правил url Creating Rule Classes , и ищите по БД, есть сериал пробрасываете на сериал, если нет проверяете категорию и если она существует на категорию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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