Есть ли в Yii2 возможность получить массив в экшине из параметров url?

К примеру, мне нужно сделать фильтр и организовать такой url:
site.ru/users/view/user_id:56;date:day;status:1

Можно ли как-то в экшине получить такой массив:
[user_id]=>56
[date]=>day
[status]=>1

Предусмотрено ли это инструментами Yii2, или нужно писать свою (получать $filter='user_id:56;date:day;status:1' и парсить)?
  • Вопрос задан
  • 3100 просмотров
Решения вопроса 1
Почему нельзя использовать POST? Cookies и туда писать JSON?
Можете записывать при помощи JSON синтаксиса
site.ru/users/view/user/56?params={date: day, status: 1}
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
metamorph
@metamorph
Мой Вам совет: не делайте такие урлы.

В подавляющем большинстве случаев автовивификаторы ссылок обломаются о точку с запятой и пользователь получит битый урл.

(пояснение: при копипасте урла на сайт, поддерживающий автоматическую замену "текста, выглядящего как урл", на фактический тег ссылки, регэксп вычленения ссылки может сильно облажаться)
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Вы можете назначить в качестве раута наследника CRoute, и там парсить строку преобразуя в get параметры...
Ответ написан
Комментировать
lxfr
@lxfr
Зачем вы делаете /users/view/1 когда можно попробовать сделать просто /user1 к примеру? Так у вас получится более релевантная страница 1 уровня, нежели 3

Потратьте пару часов на это.
Ответ написан
EagleMoor
@EagleMoor
PHP Yii2 RESTful API Developer
Используйте читабельные url. Это настраивается в urlManager.
Генерируйте url через Yii::app()->urlManager->createUrl.

Если уж очень нужно "user_id:56;date:day;status:1" то можно написать свое правило из регулярок и добавить его в urlManager
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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