mihail430899
@mihail430899
Вебмастер

Могут ли ужиться несколько разных экшнов на 1м формате url?

Приветствую веб-разработчиков. Здесь дело вот в чем. Использую фреймворк YII2. Есть 2 разных экшна, которые выводят разные типы страницы и работают
с разными моделями. Но url хочу чтобы был у них одного формата. Поэтому в web.php в разделе роутинга прописываю такие правила:
'<alias:[\w-]+>' => 'controller/action1',
'<alias:[\w-]+>' => 'controller/action2',

Alias это поле в базе для сущности, отвечающее за красивый url.

Ну и получаю вполне ожидаемую ситуацию - то правило, что выше, перебивает нижнее, в итоге site.ru/alias от первого экшна открывается, от второго нет, т.к. по правилу роутинга попадает не в свой экшн, а в первый, а тот разумеется такого алиаса не находит, так как работает абсолютно с другой моделью/таблицей и вообще с другой логикой.

Что со всем этим делать я не знаю, есть ли решения, как уместить на одном формате url 2 а то и больше экшнов?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 3
@Arik
Можно реализовать свой класс правил, как минимум первый, если логика не подходит к этому правилу, то вернуть false, где поймает второй роут
Ответ написан
Комментировать
@kupurim
Создать таблицу с алиамами и отношениям их к нужным екшинам.
Ответ написан
Комментировать
@davidnum95
'<alias:[\w-]+>' => 'controller/<alias>',
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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