2016-05-06 8 views
1

:上記の方法でLaravel 5.2:(削除)とforceDeleteは()私のコントローラ内の

public function destroy($id) 
{ 
    $task = Task::findOrFail($id); 
    if($task->forceDeleting){ 
     $task->forceDelete(); 
    } 
    else { 
     $task->delete(); 
    } 
     return back(); 
} 

else部分は機能していますが、ifURIでエラーNo query results for model [App\Task]作業とスローされていないhttp://localhost/Final/public/todo/28

を示し

softDeletesPermanent 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() }} 
+1

これはちょうど –

答えて

4

id = 28のタスクはないようです。しかし、おそらく別の選択肢もあります。このタスクは、すでに(ソフト削除を使用して)削除されたので、多分あなたは変更する必要があります。

$task = Task::findOrFail($id); 

場合

EDIT

$task = Task::withTrashed()->findOrFail($id); 

にあなたが(完全に)モデルを削除することソフト削除されている場合は、次のコードを使用する必要があります(trashed()メソッドを使用する必要があります)。

public function destroy($id) 
{ 
    $task = Task::withTrashed()->findOrFail($id); 
    if(!$task->trashed()){ 
     $task->delete(); 
    } 
    else { 
     $task->forceDelete(); 
    } 
    return back(); 
} 
+0

おかげで、あなたでは、回答に交尾problemeを見つけやすくするために、)(ソリューションではなく、forcedeleteに同じであれば条件をDDと、それは適切な結果を与えるかどうかを確認してみてくださいメソッドは、ソフト削除が機能していますが、力が働いていません。 – Gammer

+0

@Shafeeそして、ちょうど 'forceDeleting'がすべきことは?あなたはいつモデルを削除したいですか? –

+0

私は私の質問に答えています、ご意見ください。 – Gammer

1

if($task->deleted_at == null)は魔法をかけました。

public function destroy($id) 
{ 
    $task = Task::withTrashed()->findOrFail($id); 
    if($task->deleted_at == null){ 
     $task->delete(); 
    } 
    else { 
     $task->forceDelete(); 
    } 
    return back(); 
} 
+0

ええ、それは間違いでした、私はそれを修正しました。 – Gammer

関連する問題