【发布时间】:2020-07-07 23:45:30
【问题描述】:
我刚刚在 Laravel 中创建了一个类似于 todo list 的新项目。当我尝试进行简单删除时,我收到此错误:
缺少 [Route: destroy] [URI: {}] 的必需参数。 (查看:C:...\resources\views\index.blade.php)
这是 index.blade.php 的部分代码:
@if($todos)
<ol>
@foreach($todos as $todo)
<li>{{ $todo->todo }}</li>
<form action="" method="post">
@csrf
@method('Delete')
<a href="{{ route('destroy', ['id' => $todo->id]) }}" class="btn btn-danger">x</a>
</form>
@endforeach
</ol>
@endif
所以我只是检查是否有任何东西,如果没有,则不要显示列表。
来自控制器的部分代码:
public function index()
{
$todos = Todo::all();
return view('index', ['todos' => $todos]);
}
public function destroy($id)
{
Todo::findOrFail($id)->delete();
}
和 web.php 中的代码行:
Route::resource('/', 'TodosController');
这是非常基本的,它让我发疯,因为我无法弄清楚是什么导致了这个错误。似乎一切都很好。
【问题讨论】:
-
php artisan route:list并确保路由名称为destroy -
它们通常看起来像“todo.destroy”或“todos.destroy”。
-
prnt.sc/rnqyhc 只是破坏