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 중국어 웹사이트의 기타 관련 기사를 참조하세요!