搜索

2016-11-10 64 views
1

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}', '[email protected]'); 

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

回答

1

路线更改为:

Route::post('/redeem', '[email protected]'); 

然后得到控制键:

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

最后,改变你的形式:

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

你有2个选择:

第一个是l你的前端代码应该是这样,更新路由并使用GET参数。

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

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

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

我喜欢的第一个,因为JavaScript可以由最终用户修改。

+0

谢谢,我更喜欢1.解决方案 –