我的情况是这样的:
我的视图刀片如下:
{!! Form::open(['route' => 'shop.payment']) !!}
<input type="hidden" name="result_type">
<input type="hidden" name="result_data"">
...
<input type="radio" name="payment_method" value="transfer">
....
<checkout-view></checkout-view>
{!! Form::close() !!}
在视图中,laravel存在结帐视图的vue组件
这样的组件:
<script>
export default{
template:'<button @click="checkout" class="btn btn-danger pull-right" type="submit">Checkout</button>',
methods: {
checkout(e){
if(window.Laravel.hasOwnProperty('auth')) {
$('#payment-form').attr('action', '/shop/payment/checkout')
return true;
}
else {
$('#payment-form').attr('action', '/shop/detail')
$("#payment-form").attr('method', 'get')
return true
}
}
},
}
</script>
我的路线像这样:
Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
Route::get('detail', function(){
return view('shop.detail');
});
});
如果没有身份验证,它将运行else
,网址如下:
我想删除参数,所以网址如下:
我尝试更改为post
我改成这样:
$('#payment-form').attr('action', '/shop/detail')
$("#payment-form").attr('method', 'post')
return true
并且
Route::post('detail', function(){
return view('shop.detail');
});
但它不起作用,存在错误:
POST http://myshop.dev/shop/detail 405(方法不允许)
解决问题的正确方法是什么?
答案 0 :(得分:0)
您可以使用Input
和get
方法执行此操作:
查看强>
{!! Form::open(['route' => 'shop.payment','method' => 'GET']) !!}
<input type="hidden" name="result_type">
<input type="hidden" name="result_data"">
...
<input type="radio" name="payment_method" value="transfer">
....
<checkout-view></checkout-view>
{!! Form::close() !!}
<强>路线强>
Route::get('/test/route', 'TestController@yourFunction');
<强>控制器强>
public function yourFunction(){
$result_type = Input::get('result_type');
$result_data = Input::get('result_date');
......
}
我希望你明白。
答案 1 :(得分:0)
Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
Route::get('detail', function(){
return view('shop.detail');
});
});
我认为这条路线是 shopdetail ,而不是商店/细节
输入命令php artisan route:list
以查看laravel如何查看网址。
答案 2 :(得分:0)
如果没有auth,则使用return redirect to another route而不是返回视图。在您重定向的另一个路由中,如果没有经过身份验证的用户,则返回要显示的原始视图。