Строка запроса отправки Laravel с необязательными параметрами

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

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

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

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

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

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

локальный: 8000 / toyota / avalon / 2018? search_model_to = 2019

я хочу вернуться

локальный: 8000 / toyota / avalon /? search_model_from = 2018 и search_model_to = 2019

В общем, я пытаюсь достичь удобной для SEO функциональности поиска.

вы можете добавить сюда свой метод SearchController@index ?

rkj 27.06.2018 09:53

Может быть, вам стоит попробовать присвоить city нулевому значению, например: 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]);

Julien METRAL 27.06.2018 09:54

@JulienMetral Да, это решило это :) Добавьте его в качестве ответа, чтобы я мог отметить как решенное .. И спасибо, добрый сэр

AmHilal 27.06.2018 09:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
963
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Может быть, вам стоит попробовать присвоить city как null вот так:

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
]);

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

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

public function index(string $brand='', string $type='', string $city='' , $other_parameters)

Другие вопросы по теме