라라벨 Soft Delete 기능을 이용해 Undo 구현하기.

해당 문서는 "Laravel Undo Button Immediately After Delete By Laravel Daily" 라는 유튜브 영상을 참고해서 제작한 문서입니다.

 

Gmail 에서 이메일 삭제시 보이는 실행 취소 링크를 확인한 적이 있나요?

Eloqent ORM 에서 Soft Delete 기능을 사용해서 유사하게 구현해 보겠습니다.


 


 

Code

public function restore(Request $request, string $id)
{
    $emoticonCollection = Models\\EmoticonCollection::onlyTrashed()->findOrFail($id);
    $emoticonCollection->restore();

    if ($request->wantsJson()) {
        return $this->api(compact('emoticonCollection'));
    }

    return $this->redirect("이모티콘 콜렉션을 복구했습니다.");
}

영상에서 사용하는 withTrashed 보다 onlyTrashed 가 더 적합하는 생각이 듭니다.

  • withTrashed - 결과에 소프트 삭제된 모델도 가져옵니다.
  • onlyTrashed - 소프트 삭제된 모델만 가져옵니다.

 


참고

https://www.youtube.com/watch?v=owxwZzTLByA

  • share