我试图从列表中删除购物车..当我尝试删除它时,它显示上面的错误。
这是我的控制器,查看部分和方法
Route::post('cart/delete/{id}','ProductController@deleteCart');
<a href="{{ url('/cart/delete',$row->id) }}" class="remove_item">
<i class="fa fa-times"></i>
</a>
<form action="{{ url('/cart/delete',$row->id)}}" method="POST" style="display: none;">
{!! Form::hidden('id',$row->id) !!}
</form>
public function deleteCart($id){
$cart = Cart::find($id);
$cart->destroy();
return Redirect::to('/shop-cart');
}
答案 0 :(得分:2)
只需更改以下代码行:
Route::post('cart/delete/{id}','ProductController@deleteCart');
成:
Route::get('cart/delete/{id}','ProductController@deleteCart');
此错误的原因是向POST路由发送GET请求。在您的代码中,您通过调用URL发送GET请求。
<a href="{{ url('/cart/delete',$row->id) }}" class="remove_item">
<i class="fa fa-times"></i>
</a>
或者如果你想保持路线原样(作为POST路线),只需使用以下代码并做出相应的调整:
<form action="{{ url('/cart/delete') }}" method="POST" style="display: none;">
{!! Form::hidden('id', $row->id) !!}
<input type="submit" value="Submit">
</form>
最好按照以下方式修改路由,因为我们正在发送id以及POST请求,因此不需要'/{id}'
部分:
Route::post('cart/delete','ProductController@deleteCart');
使用以下方法将Http \ Request导入您的控制器:
use Illuminate\Http\Request;
按如下方式更新控制器功能:
public function deleteCart(Request $request){
$cart = Cart::find($request['id']);
$cart->destroy();
return Redirect::to('/shop-cart');
}
但是对于这种情况,GET路线似乎是避免复杂性的好选择。
答案 1 :(得分:0)
删除a href
链接,因为它会发送GET请求,而不是POST。将提交按钮添加到表单:
<form action="{{ url('/cart/delete/'.$row->id) }}" method="POST" style="display: none;">
{!! Form::hidden('id', $row->id) !!}
{!! Form::submit('delete') !!}
</form>
答案 2 :(得分:0)
错误表示没有像您尝试调用的那样的路由。您在路径文件中有这样的路线:/cart/delete/{id}
其中需要一个ID,您可以从表单/cart/delete?id=theid
修复
从提交网址/cart/delete',$row->id)
对此:/cart/delete/{{$row->id}}