ЧПУ фильтр laravel

Объясните принцип создания ЧПУ ссылок для фильтра на laravel, как это реализовать?

Есть строка URL = site.ru/category/?param=1&param=2&param=3 и т.д Необходимо, чтобы адресная строка выглядела site.ru/category/param1/param2/param3


Ответы (2 шт):

Автор решения: Dzorogh

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

Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
   //
});

В документации вам поможет этот раздел https://laravel.com/docs/8.x/routing#route-parameters

→ Ссылка
Автор решения: Alexandr Revnuk

В путях:

Route::get('category/{firstParam}/{secondParam}/{thirdParam}', "TestController@get");

В контроллере метод

public function get(<FirstModel> $firstParam, <SecondModel> $secondParam, <ThirdModel> $thirdParam)
{
   // code...
}

<FirstModel> - тут класс модели, которая связанная с той или иной таблицей

тогда будет ссылка типа: http://site/category/1/2/3

Если нужно вместо цифр - свою строчку то согласно документации:

в модель добавляем метод

public function getRouteKeyName()
    {
        return 'url';
    }

Ну и конечно добавляем такую колонку в таблице модели. url - любое название может быть.

Теперь сылка будет http://site/category/your_url_1/your_url_2/your_url_3

Но теперь всегда нужно будет вытаскивать не по id а по url значение с базы)

→ Ссылка