Laravel destroy 不会从数据库中删除数据

Laravel destroy won't delete data from database

尝试使用 Laravel 5.4 中的以下内容从数据库中删除条目,但没有成功。

我的观点

{!! Form::open(['method' => 'DELETE', 'route' => ['faculty.delete', $faculty->id]]) !!}
    <button type="submit" class="btn btn-danger btn-sm">Delete</button>
{!! Form::close() !!}

我的路线

Route::delete('faculty/delete/{id}', 'FacultyController@destroy')->name('faculty.delete');//delete faculty

我的控制器

public function destroy(Faculty $faculty)
{
    //Log::info($faculty);
    $faculty->delete();
    return redirect('faculties/faculty');
}

控制器中的 log returns 当我允许它 运行 时为空值。

问题是代码没有从 table 中删除项目。

您需要将 faculty/delete/{id} 更改为 faculty/delete/{faculty}

Laravel 自动解析在路由或控制器操作中定义的 Eloquent 模型,其类型提示变量名称与路由段名称匹配。

由于 $faculty 变量被类型提示为 App\Faculty Eloquent 模型并且变量名称匹配 {faculty} URI 段,Laravel 将自动注入具有与请求 URI 中相应值匹配的 ID 的模型实例。如果在数据库中没有找到匹配的模型实例,将自动生成 404 HTTP 响应。

https://laravel.com/docs/5.4/routing#route-model-binding