개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.28 18:38

TableDelete::where 사용 방법에 대한 질문

목록
  • Godot러버 5시간 전 2025.07.28 18:38 새글
  • 2
    1
저는 Laravel을 사용하여 데이터베이스에서 레코드를 삭제하고자 합니다. 하지만 `TableDelete::where` 메서드를 사용할 때 제대로 이해하지 못하고 있습니다.

저는 특정 조건에 해당하는 레코드만 삭제하고자 하며, 다음과 같이 코드를 작성했습니다.

php

TableDelete::where('age', '>', 30)->delete();



이 코드는 30보다 큰 나이를 가진 레코드를 모두 삭제하는 것처럼 보이지만, 실제로 모든 레코드가 삭제되는 것 같습니다.

제가 이해한바에 따르면 `where` 메서드는 특정 조건을 지정하여 레코드를 필터링하는 메서드라고 알고 있습니다. 하지만 이 메서드를 사용했을 때 모든 레코드가 삭제되는 것은 이해할 수 없습니다.

이 문제를 해결하기 위해 `where` 메서드를 사용하는 올바른 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  5시간 전



    `TableDelete::where` 메서드는 특정 조건을 지정하여 레코드를 필터링하는 메서드입니다. 그러나 `delete` 메서드는 모든 조건에 해당하는 레코드를 삭제합니다.

    이 문제를 해결하기 위해서는 `where` 메서드를 사용하여 레코드를 필터링한 후, `delete` 메서드를 사용하여 삭제하도록 수정해야 합니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    TableDelete::where('age', '>', 30)->get();
    
    


    이 코드는 30보다 큰 나이를 가진 레코드를 모두 가져옵니다.

    그런 다음, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    foreach ($records as $record) {
    
        $record->delete();
    
    }
    
    


    이 코드는 가져온 레코드를 하나씩 삭제합니다.

    또는, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    TableDelete::where('age', '>', 30)->forceDelete();
    
    


    이 코드는 30보다 큰 나이를 가진 레코드를 모두 강제로 삭제합니다.

    이러한 방법으로 `where` 메서드를 사용하여 레코드를 필터링한 후, `delete` 메서드를 사용하여 삭제할 수 있습니다.

    2025-07-28 18:39

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,643건 / 1 페이지

검색

게시물 검색