LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Как в yii2 сформировать ссылку с гет параметрами?

с помощью строки 'http:/bla.com' + параметрамтры ['foo' => 5, 'bar' => 2]
получить 'http:/bla.com?foo=5&bar=2'
  • Вопрос задан
  • 2531 просмотр
Решения вопроса 1
mitaichik
@mitaichik
В yii есть такое понятие "route" - маршрут. (https://github.com/yiisoft/yii2/blob/master/docs/g... ) Он содержит ссылку на контроллер\экшн + параметры. Записывается в ввиде массива ['/controller/action', 'param1' => 'val1', 'param2' => 'val2'].

Большинстов методов (тот же Html::a) могут принимть в качестве урла этот маршрут, а Yii уже сам сгенерирует нормальнйы урл в соответствии с правилами. По умолчанию он пихает параметры в query часть урла, то есть получиться урл типа

http:/bla.com/controller/action?param1=val1&param2=val2

Но можно настроить по всякому, например, http:/bla.com/controller/action/val1/val2 При этом код с маршрутами переписывать не придется.

В общем, в yii все продуманно и сделано круто. Лично мы всегда указывем url как маршруты - это реально очень удобно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Напримертак
Html::a('Link',
            ['controller/action'],
            [
                 'data' => [
                      'method' => 'post',
                      'params' => '{"id":'.$model->id.'}'
                 ],
            ]);

Cсылка передаётся методом post и передаётся нужный id
или так
Html::a('Link',
            ['controller/action' . $model->id],
           );

или такой вариант
Html::a('Link',
            Url::toRoute(['product/view', 'id' => 42, 'name' => 'name', 'id_s' => 2]));
Ответ написан
Ваш ответ на вопрос

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

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