我已经应用了Laravel 5.2的documentation中提到的软删除。我有一条[get]路线和另一条[删除]路线:
Route::get('profile/{id}/delete', 'uses' => 'ProfileController@delete');
Route::delete('profile/{id}', 'uses' => 'ProfileController@destroy');
控制器方法如下:
public function delete($id)
{
$profile = Profile::with('contract.division')->withTrashed()->where('id', $id)->first();
return view('pages.profiles.delete', compact('profile'));
}
public function destroy($id)
{
$profile = Profile::withTrashed()->find($id);
$profile->delete();
return redirect('employees/list');
}
使用此代码,当我尝试使用非trashed id时,我获得了内容。如果我尝试使用已删除的ID,则会出现以下错误:
模型[App \ Profile]没有查询结果。 (查看:\ xyz \ xyz \ xyz \ resources \ views \ pages \ profiles \ delete.blade.php)
尽管错误意味着当我在删除方法中使用dd($ profile)时没有查询结果,我得到了关系的完整模型。出了什么问题?!
当类型提示配置文件功能删除(配置文件$ id)时,我得到404用于删除模型,我应该如何修复路由以使配置文件准备好withTrashed()?
答案 0 :(得分:0)
类型提示删除模型将为您提供404,因为当您对已删除的模型进行雄辩时,您必须指定withTrashed()
如果您只想在系统中删除,可以尝试
if(!$profile->trashed()){
$profile->delete();
}
答案 1 :(得分:0)