Метод DELETE не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD, POST. в Ларавеле - PullRequest
0 голосов
/ 21 октября 2019

я хочу сделать, продавец может удалить продукт

<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');

    }

HELPмне пожалуйста

Ответы [ 3 ]

2 голосов
/ 21 октября 2019

Я думаю, что вам не хватает ID сделать это как

{{ route('product.destroy', $product->id)}}
0 голосов
/ 21 октября 2019

Передайте идентификатор в маршруте в тегах формы,

{{ route('product.destroy', $product->id)}}

Также

$product= Product::find($id);
    Storage::delete($product->image);
    $product->delete();

Проверьте, является ли их продуктом $, затем удалите его, в противном случае вы получитеошибка.

0 голосов
/ 21 октября 2019

вы можете попробовать удалить метод post из формы, потому что вы указываете другой и зависеть от того, какую версию вы используете, вы можете попробовать @method ('DELETE')

@method('DELETE')

это просто более элегантно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...