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