我想让卖家删除产品
<form action="{{ route('product.destroy'}}" method="post">
{{csrf_field()}}
{{method_field('DELETE')}}
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
</form>
这是在web.php中
Route::get('/index', 'ProductController@index');//seller view all product
Route::get('/create', 'ProductController@create'); //seller create new product
Route::post('','ProductController@store')->name('product.store'); //store in database
Route::get('/edit/{id}','ProductController@edit'); // seller edit post
Route::put('edit/{id}','ProductController@update')->name('product.update'); //seller update
Route::delete('/{id}','ProductController@destroy')->name('product.destroy');//seller delete product
这是在ProductController中
public function destroy($id)
{
$product= Product::find($id);
Storage::delete($product->image);
$product->delete();
return back()->withInfo('Product has been deleted');
}
请帮助我
答案 0 :(得分:2)
我认为您缺少ID,就像
{{ route('product.destroy', $product->id)}}
答案 1 :(得分:0)
您可以尝试删除表单的post方法,因为您指定了另一个方法,并根据所使用的版本确定,可以尝试@method('DELETE')
@method('DELETE')
它更加优雅
答案 2 :(得分:0)
在表单标签中的路径中传递ID,
{{ route('product.destroy', $product->id)}}
也
$product= Product::find($id);
Storage::delete($product->image);
$product->delete();
检查它们是否为$ product,然后将其删除,否则会出现错误。