尝试使用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
返回一个空值。
问题是代码不会从表中删除该项目。
答案 0 :(得分:1)
您需要将faculty/delete/{id}
更改为faculty/delete/{faculty}
。
Laravel自动解析路径或控制器操作中定义的Eloquent模型,其类型提示的变量名称与路径段名称匹配。
由于$faculty
变量是类型提示为App\Faculty
Eloquent模型且变量名称与{faculty}
URI段匹配,因此Laravel将自动注入具有ID匹配的模型实例来自请求URI的相应值。如果在数据库中找不到匹配的模型实例,则会自动生成404 HTTP响应。