Laravel购物车商品数量更新失败:无法触发控制器update方法
问题排查与修正
你的代码存在三个关键错误,导致无法触发控制器的update方法:
路由名称不匹配
路由定义的名称是item.update,但表单中调用route()函数时用了错误的名称item-update,Laravel找不到对应的路由,自然无法跳转。HTTP请求方法不匹配
路由使用的是patch方法,但表单里的@method('PUT')指定了PUT请求,两者不对应,Laravel的路由匹配会失败。表单method属性错误
HTML表单原生只支持GET和POST方法,所以表单的method属性必须设为POST,再通过@method指定实际的HTTP请求方法(这里是PATCH)。
修正后的代码:
路由(无需修改,保持原定义):
Route::patch('/item/{rowId}', [CartController::class, 'update'])->name('item.update');
表单代码:
<form action="{{ route('item.update', $items->rowId)}}" method="POST"> @method('PATCH') @csrf <span> <button type="submit"><span style="color:blue"> Mettre à jour le panier</span></button> </span> </form>
控制器方法(无需修改,保持原定义):
public function update(Request $request, $rowId) { // 在这里编写更新逻辑 }
内容的提问来源于stack exchange,提问作者MOHAMED KESSOUM
相关产品推荐
相关产品推荐

