Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel 5.4中为搜索获取干净的URL_Php_Laravel_Blade_Clean Url - Fatal编程技术网

Php 如何在laravel 5.4中为搜索获取干净的URL

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

目前,我正在Laravel中开发一个项目搜索功能,并坚持在没有任何JS的情况下获取干净的URL

比如当我搜索时,我的表单会将我重定向到

但是相反,我想要这个

我的web.php是:

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'])”不是我想要的。它给了我这个url
http://jobs.localhost/search/test?q=s
实际上我并不想要。Alexey对此有一个很好的答案
$('#search-form').on('submit', function(e) {
    e.preventDefault();
    var search = $('#form-q').val();
    window.location('/search/' + search);
})