我在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?
答案 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。