Laravel Отсутствуют необходимые параметры для [Маршрут: уничтожить]

Я создал маршрут, как показано ниже

Route::resource('reports/', 'ReportController')->middleware('auth');

В списке маршрутов у меня есть список, как показано ниже

DELETE    | reports/{}             | destroy          | App\Http\Controllers\ReportController@destroy  

В index.blade.php я создал кнопку удаления, как показано ниже

<form method="post" action="{{route('destroy',['report'=>$report->id])}}" onsubmit="return confirm('Are you sute to delete?')">
             @csrf 
             @method("delete")
             <button type="submit" class="btn btn-danger btn-sm">Delete</button>
 </form>

ReportController Destroy метод:

public function destroy(Report $report)
{
     //
}

Но я получаю ошибку ниже

Missing required parameters for [Route: destroy] [URI: reports/{}].

2 ответа

Решение

Удалите / из вашего маршрута

Route::resource('reports/', 'ReportController')->middleware('auth');

к

Route::resource('reports', 'ReportController')->middleware('auth');

Проверить документ

Ваш маршрут должен выглядеть так:

DELETE    | reports/{report}             | destroy          | App\Http\Controllers\ReportController@destroy 

И отчет модели должен быть добавлен в RouteServiceProvider.php следующим образом:

public function boot()
{
    parent::boot();

    Route::model('report', App\Report::class);

Это привязка модели маршрута. Читайте здесь https://laravel.com/docs/7.x/routing

Другие вопросы по тегам