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.