2013-08-21 2 views
3

이라는 테이블이 있는데이 테이블에 소프트 삭제를 추가 할 예정이지만이 '타이틀을 참조하는 다른 여러 테이블도 있습니다. '표 :Laravel 4 : 테이블에 대한 소프트 삭제도 관계에 적용됩니다.

현재 제목을 삭제하면 참조 된 다른 모든 표의 제목 세부 정보 양식에서 자동으로 제거됩니다. 내가 삭제 그것은 다음은 부드러운 '제목' 테이블에 삭제 할 것입니다 수행 할 때이 소프트 '제목' 테이블에 삭제 추가하지만, 참조 된 테이블에서 세부 사항을 제거합니다 그래서 경우

? 아니면 onDelete Cascade 요청을 무시하고 참조 된 데이터 만 남겨 두겠습니까?

첫 번째 옵션이 있다면 $ table-> softDeletes();를 추가해야합니다.을 모든 테이블에 참조 보호 된 장치를 추가하는 것뿐만 아니라 $ softDelete = true; 그들의 모델에?

답변

5

그렇지 않습니다. 관계에 softDelet을 적용해야합니다 (doc 참조)
소프트 삭제는 MySQL이나 다른 것이 아니라 Laravel의 속성이기 때문에 ON DELETE CASCADE으로 전파 할 수 없습니다.

그러나 모델을로드하면 Laravel에서 소프트 삭제 모델과 그 관계를로드하지 않습니다. 고유 한 소프트 삭제로 충분합니다.

+0

그게 사실이라고 생각하면 실제로 삭제하지 않고 값을 추가하면 삭제 된 캐스케이드에 사용되는 전파 된 요청이 삭제로 활성화되지 않아야합니까? 덕분에 아마도 시도해 보시기에 가장 좋은 –

+0

사실 나는 방금 title 테이블에 soft delete를 추가했고 필드에 값을 추가하고 삭제하지 않기 때문에 전체 삭제 관계 요청을 무시합니다. 다시 한번 감사드립니다. @AlexKevler –

+0

오늘도 같은 문제가 있습니다 .1 – Eenvincible