Laravel 提交按钮在点击时不执行任何操作
Laravel submit button does nothing when clicked
我在 Laravel 中创建了一个更新表单,但每次单击提交按钮时,没有任何反应,也没有显示任何错误。我尝试更改路线 post URL 但仍然没有任何反应。
以下是我使用的路线:
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');
}
在我的 blade 文件中,我使用了这个:
<form method = "POST" action = '{{ url("/edit_product/{id}")}}' enctype = "multipart/form-data">
这是我的提交按钮:
<input type = "submit" name = "sub" value = "Done">
首先检查它是否将更改保存到数据库中。
其次检查它是否记录任何错误。
首先,将路由命名为 / url 是一个好习惯,其次,这是 action 属性中 url 的问题,它没有正确创建。
您需要执行以下操作:
使用 name()
方法命名您的路线:
Route::post('/edit_product/{id}','UpdateController@saveEdit')->name('edit_product');
使用名称创建url,使用route()
方法以产品id为参数:
<form method = "POST" action = "{{ route('edit_product', ['id' => $product->id]) }}" enctype = "multipart/form-data">
TIP: 最好使用 $product
作为变量名而不是 $products
作为 find()
方法 returns a单个模型对象或 null
.
我在 Laravel 中创建了一个更新表单,但每次单击提交按钮时,没有任何反应,也没有显示任何错误。我尝试更改路线 post URL 但仍然没有任何反应。
以下是我使用的路线:
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');
}
在我的 blade 文件中,我使用了这个:
<form method = "POST" action = '{{ url("/edit_product/{id}")}}' enctype = "multipart/form-data">
这是我的提交按钮:
<input type = "submit" name = "sub" value = "Done">
首先检查它是否将更改保存到数据库中。 其次检查它是否记录任何错误。
首先,将路由命名为 / url 是一个好习惯,其次,这是 action 属性中 url 的问题,它没有正确创建。
您需要执行以下操作:
使用 name()
方法命名您的路线:
Route::post('/edit_product/{id}','UpdateController@saveEdit')->name('edit_product');
使用名称创建url,使用route()
方法以产品id为参数:
<form method = "POST" action = "{{ route('edit_product', ['id' => $product->id]) }}" enctype = "multipart/form-data">
TIP: 最好使用 $product
作为变量名而不是 $products
作为 find()
方法 returns a单个模型对象或 null
.