Gam*_*mer 1 php laravel eloquent laravel-5 laravel-5.2
在我的控制器中:
public function destroy($id)
{
$task = Task::findOrFail($id);
if($task->forceDeleting){
$task->forceDelete();
}
else {
$task->delete();
}
return back();
}
Run Code Online (Sandbox Code Playgroud)
在上面的方法中,该else部分正在工作但是if不起作用并且No query results for model [App\Task]在URI节目中引发错误http://localhost/Final/public/todo/28
我从视图到softDeletes和使用相同的方法Permanent Deletes.
{{ Form::open(['method' => 'DELETE', 'route' => ['todo.destroy', $task->id]]) }}
{{ Form::button('<i aria-hidden="true"></i>', array('type' => 'submit', 'class' => 'fa fa fa-trash fa-3x complete-icon')) }}
{{ Form::close() }}
Run Code Online (Sandbox Code Playgroud)
似乎id = 28没有任务.但可能还有另一种选择.此任务已被删除(使用软删除),因此您可能应该更改:
$task = Task::findOrFail($id);
Run Code Online (Sandbox Code Playgroud)
成
$task = Task::withTrashed()->findOrFail($id);
Run Code Online (Sandbox Code Playgroud)
编辑
如果您想要删除(完全)软删除的模型,您应该使用以下代码(您应该使用trashed()方法):
public function destroy($id)
{
$task = Task::withTrashed()->findOrFail($id);
if(!$task->trashed()){
$task->delete();
}
else {
$task->forceDelete();
}
return back();
}
Run Code Online (Sandbox Code Playgroud)