用于搜索的Laravel动态路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于搜索的Laravel动态路由相关的知识,希望对你有一定的参考价值。

我想在用户单击Search按钮时生成动态路由。

我知道可以使用以下GET方法来完成

https://laravel.dev/search?q=parameter 
https://laravel.dev/search?state=XYZ&category=Automobile

但是我想做以下事情

https://laravel.dev/search/state/XYZ/category/Automobile

因此,如果我在搜索表单中添加一个额外的参数,它只会添加到URL上。

参数可能是可选的,因此无法在routes中添加固定路由。用户可以提供状态或搜索所有状态。

https://laravel.dev/search/category/Automobile

我该如何实现?

谢谢

答案

您可以使用全部路由处理逻辑:

//routes.php
Route::get('search/{searchString?}', 'SearchController@search')
    ->where('searchString', '(.*)');


//controller 
class SearchController extends BaseController {

    public function getData($searchString = null)
    {
        if($searchString) 
        {
            //do stuff 
        }
    }

}

以上是关于用于搜索的Laravel动态路由的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 使用 Javascript 调用带有所需参数的路由

laravel 主域路由优先于动态子域

Laravel:如何通过javascript加载带有动态参数的命名路由

使用 Laravel 8 使用动态路由获取错误 500

laravel5.5学习2-路由系统

带有动态前缀的 Laravel 动态路由