찾다

 >  Q&A  >  본문

Laravel Eloquent의 where 메소드는 데이터베이스의 첫 번째 레코드 배열만 반환합니다.

다음 코드가 있습니다:

으아악

$subOffers를 반환하면 다음과 같은 배열이 표시됩니다.

으아악

하지만 1을 2, 3, 4로 바꾸면... 이런 객체가 나옵니다.

으아악

이 경우에는 4로 변경하고 n-1 키를 얻었습니다.

무슨 일이에요? 배열 대신 객체를 받는 이유는 무엇입니까? 이는 Offers_id가 1보다 큰 경우에 발생합니다. Offers_id는 외래 ​​키입니다.

P粉966979765P粉966979765336일 전517

모든 응답(2)나는 대답할 것이다

  • P粉136356287

    P粉1363562872024-01-04 09:37:25

    알겠습니다. 해결책을 찾았습니다

    으아아아

    단지 whereget

    로 바꿔야 한다는 것뿐입니다.

    근데 아직도 모르겠어요, 무슨 일이에요? 왜 이런 일이 일어나는지 알고 싶습니다.

    회신하다
    0
  • P粉404539732

    P粉4045397322024-01-04 09:35:16

    eloquent의 get() 메소드는 Laravel 컬렉션을 반환합니다. 즉, where()가 결과 컬렉션에 영향을 미치는 것과 같이 그 뒤에 추가하는 모든 항목은 https://laravel.com/docs/9를 참조하세요. x/collections, 컬렉션은 배열과 유사한 객체이지만 데이터베이스 쿼리와 유사한 많은 기능을 가지고 있지만 모두 로컬 메모리에 있습니다.

    get() 이전에 where() 메서드가 있는 경우 데이터베이스 쿼리를 작성하고 있으며 get()까지 쿼리가 실행되지 않습니다. 쿼리 작성 방법과 수집 방법은 유사하게 작동하지만 서로 다른 작업을 수행하기 때문에 다른 결과를 얻습니다.

    회신하다
    0
  • 취소회신하다