Laravel фильтр от симпатичного URL - PullRequest
1 голос
/ 30 апреля 2020

У меня есть веб-сайт CMS, и некоторые поисковые фильтры создаются в зависимости от категории и подкатегории.

Поэтому я использовал маршрут, подобный следующему

Route::get('search/{filter?}', function ($filter) {
    return $filter;
})->where('filter', '.*');

Теперь сгенерированный URL при отправке формы выглядит следующим образом:

https://cms.dev/search/category/men/sub-category/shirt/price/100,300

Как преобразовать параметры в пару ключ-значение?

1 Ответ

0 голосов
/ 30 апреля 2020

используя preg_split или explode, вы можете получить то, что вы хотите.

Route::get('search/{filter?}', function ($filter) {
    return preg_split('/[\/\\\]/',$filter );
})->where('filter', '.*');

В этих случаях я предпочитаю добавлять свои параметры в качестве параметров запроса к URL-адресу, как показано ниже: https://example.com/exampleroute?param1=example&param2=example

таким образом, я могу получить доступ к параметрам, используя запрос, пока я нахожусь в контроллере.

request('param1')
or
$request->param1

также я могу сгенерировать желаемый URL, заполнив второй аргумент функции function.route, сначала заполните параметры URL и затем, если во втором аргументе есть какие-либо другие элементы, он добавит их в качестве запроса к URL.

route('example' , ['param1'=>123 , 'param2'=>3456])

также было бы очень просто использовать простую форму (method="get") для генерации URL.

также помните, что результат разбиения на страницы в Elequent принимает параметры для добавления к своим страницам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...