我在Laravel中创建了一个更新表单,但每次单击“提交”按钮时,都没有任何反应,也没有显示任何错误。我尝试更改路径发布网址,但仍然没有任何反应。
以下是我使用的路线:
Route::get('/edit_product/{id}','UpdateController@editProduct');
Route::post('/edit_product/{id}','UpdateController@saveEdit');
我的控制器代码:
public function editProduct($id){
$products = Products::find($id);
return view('products.update', ['products'=>$products]);
}
public function saveEdit(Request $request, $id){
$products = Products::find($id);
$products->product_name = $request->get('product_name');
$products->price = $request->get('price');
$products->category = $request->get('category');
$products->subcategory = $request->get('subcategory');
$products->details = $request->get('details');
$products->save();
return redirect('products');
}
在我的刀片文件中,我使用了这个:
<form method = "POST" action = '{{ url("/edit_product/{id}")}}' enctype = "multipart/form-data">
这是我的提交按钮:
<input type = "submit" name = "sub" value = "Done">
答案 0 :(得分:1)
首先,为您的路线/网址命名是一个好习惯,其次,这是url in action属性的问题,它未正确创建。
您需要执行以下操作:
使用name()
方法命名您的路线:
Route::post('/edit_product/{id}','UpdateController@saveEdit')->name('edit_product');
使用名称使用route()
方法创建ID为product的url作为参数:
<form method = "POST" action = "{{ route('edit_product', ['id' => $product->id]) }}" enctype = "multipart/form-data">
提示:最好使用$product
作为变量名而不是$products
,因为find()
方法会返回单个模型对象或null
答案 1 :(得分:-1)
首先检查它是否将更改保存到数据库。 其次检查是否记录了任何错误。