Php 如何在laravel 5.4中为搜索获取干净的URL
目前,我正在Laravel中开发一个项目搜索功能,并坚持在没有任何JS的情况下获取干净的URL 比如当我搜索时,我的表单会将我重定向到 但是相反,我想要这个 我的web.php是:Php 如何在laravel 5.4中为搜索获取干净的URL,php,laravel,blade,clean-url,Php,Laravel,Blade,Clean Url,目前,我正在Laravel中开发一个项目搜索功能,并坚持在没有任何JS的情况下获取干净的URL 比如当我搜索时,我的表单会将我重定向到 但是相反,我想要这个 我的web.php是: Route::get('search', ['as' => 'search', 'uses' => 'SearchController@search']); 表格为: <form class="form-inline" method="GET" action="{{ action('Searc
Route::get('search', ['as' => 'search', 'uses' => 'SearchController@search']);
表格为:
<form class="form-inline" method="GET" action="{{ action('SearchController@search') }}" id="search-form">
<div class="col-md-5 col-sm-5 col-xs-12 nopadding">
<div class="form-group">
<input type="text" class="form-control" id="form-q" name="q" placeholder="Search a Job">
<i class="icon-magnifying-glass"></i>
</div>
</div>
<div class="col-md-2 col-sm-2 col-xs-12 nopadding">
<div class="form-group form-action">
<button type="submit" class="btn btn-default btn-search-submit">Search <i class="fa fa-angle-right"></i> </button>
</div>
</div>
</form>
我已经检查了JS或POST的多个解决方案,但都不适用于我这是我想要的最终输出:
谢谢 您需要的是路线参数。你可以找到更多信息 您可能(也将)遇到的一个问题是,表单的路由是在php(服务器端)中确定的,但搜索参数被确定为输入。如果您不需要任何javascript,我相信如果不重新路由,这是不可能的。将路由更改为:
Route::get('search/{search}', ['as' => 'search', 'uses' => 'SearchController@search']);
以及控制员:
public function search(Request $request, $search)
{
echo $search;
}
然后,您可以使用jQuery执行以下操作:
$('#search-form').on('submit', function(e) {
e.preventDefault();
var search = $('#form-q').val();
window.location('/search/' + search);
})
我包含了Route参数,但它给了我一个错误,
缺少[Route:search][URI:search/{q}]
这是我的web路由Route::get('search/{q}',['as'=>'search','uses'=>'SearchController@search']);代码>使用路由参数时,在发出请求时还需要包含该参数。例如“行动('SearchController@search“,['q'=>'test'])”不是我想要的。它给了我这个urlhttp://jobs.localhost/search/test?q=s
实际上我并不想要。Alexey对此有一个很好的答案
$('#search-form').on('submit', function(e) {
e.preventDefault();
var search = $('#form-q').val();
window.location('/search/' + search);
})