单击时,Laravel提交按钮不执行任何操作

时间:2017-09-17 16:21:36

标签: php laravel-5.4

我在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">

2 个答案:

答案 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)

首先检查它是否将更改保存到数据库。 其次检查是否记录了任何错误。