Laravel GET搜索方法

时间:2016-11-10 12:47:17

标签: php forms laravel get

我在Laravel中创建表单:

<form action="/redeem" method="get" class="sidebar-form">
    <div class="input-group">
      <input type="text" name="key" class="form-control" placeholder="ENTER VOUCHER CODE">
          <span class="input-group-btn">
            <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i>
            </button>
          </span>
    </div>
  </form>

现在,当我尝试提交时,我得到了:

http://localhost:8888/redeem?key=NBtGJ5pZls&search=

但我需要得到:

http://localhost:8888/redeem/NBtGJ5pZls

也在我的路线中:

Route::get('/redeem/{key}', 'OrdersController@redeem');

如何重定向到我的表单兑换/ NBtGJ5pZls?

2 个答案:

答案 0 :(得分:1)

将您的路线更改为:

Route::post('/redeem', 'OrdersController@redeem');

然后获取控制器中的密钥:

public function redeem(Request $request)
{
    $key = $request->key;

最后,改变你的形式:

<form action="/redeem" method="post" class="sidebar-form">
    {{ csrf_field() }}

答案 1 :(得分:1)

您有两个选择:

第一个是让你的前端代码成为它的样子,更新路线,并使用GET参数。

第二个是使用一些javascript来重写您想要访问的URL。 例如这(它使用jQuery):

$('#search-btn').click(function() {
    var key = $('input[name=key]').val();

    window.location.href = '/redeem/' + key;
});

我更喜欢第一个,因为最终用户可以修改javascript。