【问题标题】:Laravel GET method for search用于搜索的 Laravel GET 方法
【发布时间】:2016-11-10 12:47:17
【问题描述】:

我在 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?

【问题讨论】:

    标签: php forms laravel get


    【解决方案1】:

    将您的路线更改为:

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

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

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

    最后,改变你的形式:

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

    【讨论】:

      【解决方案2】:

      你有两个选择:

      首先是让你的前端代码保持原样,更新路由,并使用 GET 参数。

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

      $('#search-btn').click(function() {
          var key = $('input[name=key]').val();
      
          window.location.href = '/redeem/' + key;
      });
      

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

      【讨论】:

        猜你喜欢
        • 2018-04-22
        • 2014-02-21
        • 1970-01-01
        • 1970-01-01
        • 2020-05-30
        • 1970-01-01
        • 1970-01-01
        • 2020-11-08
        • 1970-01-01
        相关资源
        最近更新 更多