Как организовать URL и routes фильтров/поиска для Laravel?

Есть каталог недвижимости. Сейчас работа с коллекциями идет через Rest контроллеры - Route::resource(name,controller)
example.com/house/{id} - выдача объекта посуточной аренды
example.com/rent/{id} - выдача объекта долгосрочной аренды

Есть функционал поиска/фильтров который обращается к методу filter, контроллера filter, в который через get/post передается запрос поиска и генерируется выдача.
example.com/filter?district=districtName&
subway=subwayName&
room=roomCount&
people=peopleCount&
orderBy=orderByValue&
priceMin=priceMinValue&
priceMax=priceMaxValue&
city=cityName

После СЕО аудита поставили таск - поменять организацию URL в фильтрах. Сделать чтоб было как на OLX или похожим образом.
olx.ua/kiev/
olx.ua/hobbi-otdyh-i-sport/kiev/
olx.ua/hobbi-otdyh-i-sport/muzykalnye-instrumenty/kiev/

В моем случае это должны быть ссылки типа
example.com/posutochno/kiev/2-komnatnye
example.com/dolgosrochno/2-komnatnye
example.com/posutochno/kiev/obolon/metro-obolon/4-spalnih-mest
example.com/posutochno/kiev/4-spalnih-mest
Могу описать полную вложенность, если необходимо

Вроде как документация предлагает следующее, но ссылки будут все равно длинные:
Route::get('posts/{post?}/comments/{comment?}', function ($postId = null, $commentId = null) {
//
});

Какой наиболее правильный подход для организации url и routes в моем случае?
  • Вопрос задан
  • 812 просмотров
Пригласить эксперта
Ответы на вопрос 1
mr_T
@mr_T
Web-разработчик
А в чем, собственно, проблема? Можно ведь оставить и старый способ фильтрации, и новый добавить.
С точки зрения СЕО это вряд ли на что-то повлияет, поскольку поисковые системы не станут отправлять формы.
А так создать роут типа Route::get('/catalog/{segment1?}/{segment2?}', 'Controller@getIndex'), где как-то сопоставлять сегменты и ограничивать выборку по ним.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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