Laravel отправить строку запроса с необязательными параметрами - PullRequest
0 голосов
/ 27 июня 2018

Мой маршрут установлен как

Route::any('/{brand?}/{type?}/{city?}', 'SearchController@index')->name('search');

Я хочу отправить из моего контроллера строки запроса (Form GET params)

После поиска я закончил с этим, но он не работает должным образом

return redirect()->route('search', [$brand->name, $type->name, 'search_model_from' => $request->search_model_from, 'search_model_to' => $request->search_model_to]);

который возвращает обратно

локальный: 8000 / Тойота / Авалон / 2018 search_model_to = 2019

Я хочу вернуть

локальный: 8000 / Тойота / Авалон / search_model_from = 2018 & search_model_to = 2019

В целом я пытаюсь добиться функциональности поиска, дружественного к SEO *

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Я не уверен, но это может произойти, потому что вы определили 3 необязательных параметра в маршруте, и поскольку вы отправляете только два из них, это может принять следующий (в данном случае 'search_model_from') в качестве третьего параметра для URL.

Возможно, если вы приведете значение по умолчанию к необязательным параметрам в вашем контроллере, и у вас не возникнет такой проблемы, как это:

public function index(string $brand='', string $type='', string $city='' , $other_parameters)
0 голосов
/ 27 июня 2018

Может быть, вам следует попытаться присвоить городу ноль, например:

return redirect()->route('search', [
    'brand' => $brand->name, 'type' => $type->name, 
    'city' => '', 'search_model_from' => $request->search_model_from, 
    'search_model_to' => $request->search_model_to
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...