Laravel 4.2 表单 SUbmit 友好 URL


Laravel 4.2 Form SUbmit Friendly URL

我在 Laravel 4.2 中有一个表单

{{Form::open(array('url'=>'search', 'method'=>'get', 'class'=>'navbar-form navbar-left' ,'role'=>'search'))}}
<div class="form-group ">
   <input list="browsers" name="topic" class="form-control " placeholder="Search">
     <datalist id="browsers">
        <option value="Internet Explorer">
        <option value="Firefox">
        <option value="Chrome">
        <option value="Opera">
        <option value="Safari">
     </datalist>
</div>
<button class="gray-button"><span>Search</span></button>
{{Form::close()}}

当我点击提交按钮时,我得到的网址如下

http://localhost/car/public/search?topic=dfg

但是我想有一个像这样的网址

http://localhost/car/public/search/dfg

我需要更改表单中的某些代码吗?

或在路由器中。

谁能帮我?

提前感谢您的帮助。

如果你不想按照注释中指出@lukasgeiter的那样进行服务器重定向,你确实需要JavaScript。您还需要为该特定搜索 URL 设置路由。使用路由闭包的路由应如下所示:

Route::get('search/{topic}', function ($topic)
{
    // code goes here
});

对于客户端,您需要停止提交表单,并在提交表单时转到手动构建的 URL。所以你可以有这样的东西:

{{Form::open(array('url'=>'search', 'method'=>'get', 'id' => 'searchForm', 'class'=>'navbar-form navbar-left' ,'role'=>'search'))}}
    <div class="form-group ">
       <input list="browsers" name="topic" class="form-control " placeholder="Search">
         <datalist id="browsers">
            <option value="Internet Explorer">
            <option value="Firefox">
            <option value="Chrome">
            <option value="Opera">
            <option value="Safari">
         </datalist>
    </div>
    <button class="gray-button"><span>Search</span></button>
{{Form::close()}}
<script>
    document.getElementById('searchForm').onsubmit = function (event)
    {
        // Prevent the form from submitting
        event.preventDefault();
        // Build the url using the form action and the topic value
        var topic = document.querySelectorAll('input[name="topic"]')[0];
        window.location.href = this.action + '/' + encodeURIComponent(topic.value);
    };
</script>