> 백엔드 개발 > PHP 튜토리얼 > Eloquent의 `with()` 함수를 사용하여 관련 테이블에서 특정 열을 선택하는 방법은 무엇입니까?

Eloquent의 `with()` 함수를 사용하여 관련 테이블에서 특정 열을 선택하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-26 07:28:31
원래의
186명이 탐색했습니다.

How to Select Specific Columns from Related Tables Using Eloquent's `with()` Function?

Eloquent의 "With()" 함수를 사용하여 관련 테이블에서 특정 열 검색

Eloquent의 "with()" 함수를 사용하여 조인을 수행할 때, 관련 테이블에서 특정 열을 검색할 수 있습니다. 이는 조인된 테이블에서 열의 하위 집합만 필요한 시나리오에 유용합니다.

문제:

User와 Post라는 두 테이블이 있는 시나리오를 생각해 보세요. 한 명의 사용자가 여러 개의 게시물을 가질 수 있으며 각 게시물은 한 명의 사용자에게 속합니다.

초기 접근 방식:

기본 "with('user')" 구문을 사용하면 다음 쿼리가 실행됩니다.

select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
로그인 후 복사

그러나 " "id" 및 "username"과 같은 users" 테이블에는 위의 접근 방식이 적용되지 않습니다. 충분합니다.

해결책 I: "with()"에서 배열을 두 번째 인수로 사용:

"with()"에서 두 번째 인수로 배열 전달 관련 테이블에서 검색할 열을 지정할 수 있습니다. 그러나 이 접근 방식은 첫 번째 테이블의 열을 지정하는 경우에만 작동합니다.

해결책 II: "with()"에서 클로저를 두 번째 인수로 사용:

To 두 번째 테이블에서 특정 열을 검색하려면 "with()" 배열의 두 번째 인수로 클로저 함수를 사용하세요. 이 기술을 사용하면 열 선택을 위한 사용자 정의 논리를 구현할 수 있습니다.

Post::query()
    ->with(['user' => function ($query) {
        $query->select('id', 'username');
    }])
    ->get()
로그인 후 복사

이 접근 방식을 사용하면 다음 쿼리가 실행됩니다.

select * from `posts`
select id, username from `users` where `users`.`id` in (<1>, <2>)
로그인 후 복사

참고: 기본 원하는 결과를 검색하려면 관련 테이블의 키(이 예에서는 "id")가 $query->select()의 첫 번째 매개 변수여야 합니다.

위 내용은 Eloquent의 `with()` 함수를 사용하여 관련 테이블에서 특정 열을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿