2016-12-20 1 views
0
MyMode::whereNotIn('id', $someCollection->pluck('id')->toArray())->delete(); 

은 테이블에서 모든 값을 제거합니다. 그러나 나는 그것이 $someCollection에 존재하지 않는 항목만을 제거한다고 생각합니다. $someCollection->pluck('id')->toArray()에없는 항목을 제거하는 방법은 무엇입니까?여기서 NotIn은 laravel 모델 테이블의 모든 값을 제거합니다.

답변

1

아무 문제없이 작동합니다. $someCollection->pluck('id')->toArray()에있는 것을 먼저 확인하여 MyMode 모델에서 전체/없음 행을 반환하지 않는지 확인해야합니다.

+0

감사합니다. 두 요청을 보냈고 두 번째 요청에서 someCollection은 비어있었습니다. – Alex

+0

@Alex 그래서 이것은 분명히 이유입니다. collection이 비어 있으면'whereNotIn ('id', [])'는 table의 모든 행을 선택하게하므로 모든 행이 삭제됩니다. –