ЧПУ и формы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
ViRuS-X
Сообщения: 31
Зарегистрирован: 2017.04.19, 01:33

ЧПУ и формы

Сообщение ViRuS-X »

Здравствуйте. Стоит задача: сделать ЧПУ типа "sitename/search/param". В правилах роутинга задано правило, которое делает все как надо, когда вводишь запрос напрямую в строку поиска, вот только проблема - значение "param" получаю из инпута формы, а значит я не могу напрямую создать URL с помощью менеджера и в итоге юрл будет иметь стандартный вид http://sitename/main/search?inputname=param
Часть с /main можно выкинуть без проблем, но ГЕТ-параметр со знаком вопроса и с именем инпута все равно останется.

Есть способ обойти эту проблему? Заранее спасибо за советы.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: ЧПУ и формы

Сообщение urichalex »

Код: Выделить всё

'search/param/<inputname:\w+>' => 'site/search'
ViRuS-X
Сообщения: 31
Зарегистрирован: 2017.04.19, 01:33

Re: ЧПУ и формы

Сообщение ViRuS-X »

urichalex писал(а): 2018.03.22, 17:28

Код: Выделить всё

'search/param/<inputname:\w+>' => 'site/search'
Вы не поняли, вопрос не в том как разобрать урл, а как сформировать ЧПУ при получении параметра из поля формы.
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: ЧПУ и формы

Сообщение someweb »

Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
nickdenry
Сообщения: 99
Зарегистрирован: 2015.10.28, 04:55

Re: ЧПУ и формы

Сообщение nickdenry »

По-идее, если в настройках yii\web\UrlManager в конфиге есть соотвествующее правило, как написал @urichalex, то Url::to должен сгенерировать как раз вот такой адрес 'sitename/search/param', если передать значение параметра как 'inputname', т.е.

Код: Выделить всё

echo Url::to(['sitename/search', 'inputname' => $param]);
Ответственные программисты с высоким уровнем технического долга (c)
Ответить