首页 > 解决方案 > Laravel 搜索功能

问题描述

我的主页上有一个搜索栏,如下所示:

                <form action="{{ route('search', $query) }}" method="GET" role="search">
                <div class="input-group mb-4 search_bar">
                    <input type="search" name="search" placeholder="Search..." aria-describedby="button-addon5" class="form-control search_input">
                    <div class="input-group-append">
                        <button id="button-addon5" type="submit" class="btn btn-primary"><i class="fa fa-search"></i></button>
                    </div>
                </div>
                </form>

我的路线如下所示:

Route::get('all-{query}-posts', 'SearchController@index')->where('query', '[A-Za-z0-9-]+')->name('search');

所以基本上我希望在我的 url 中输入搜索栏: /all-stuff-posts 而不是通常的: ?search=stuff 即使我没有添加,它似乎会自动将 ?search=stuff 添加到末尾任何地方,所以这是第一个问题。

第二个问题是我只能在控制器中检索查询,但这给了我在 web.php 中的错误,因为查询仍未设置。有没有不同的方法可以做到这一点?

标签: laravel

解决方案


像这样更改下面的表单操作方法

<form action="{{url('')}}/all-{{$query}}-posts" ...>

推荐阅读