> 백엔드 개발 > PHP 튜토리얼 > Laravel의 Eloquent `with()` 함수에서 특정 열을 선택하는 방법은 무엇입니까?

Laravel의 Eloquent `with()` 함수에서 특정 열을 선택하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-16 00:41:16
원래의
924명이 탐색했습니다.

How to Select Specific Columns in Laravel's Eloquent `with()` Function?

Eloquent의 "With()" 함수에서 특정 열 지정

Laravel의 Eloquent ORM에서 "with()" 함수를 활용하여 여러 테이블에서 관련 데이터를 가져올 때, 두 번째 테이블의 특정 열만 필요한 상황이 발생할 수 있습니다. 이 문서에서는 쿼리 빌더를 사용하지 않고 이를 달성하는 방법에 대해 자세히 설명합니다.

일대다 관계가 있는 "User"와 "Post"라는 두 테이블이 있는 시나리오를 생각해 보세요. User 모델에서는 Post 모델과 "hasMany" 관계를 정의합니다:

public function post()
{
    return $this->hasmany('post');
}
로그인 후 복사

마찬가지로 Post 모델에서는 User 모델과 "belongsTo" 관계를 설정합니다:

public function user()
{
    return $this->belongsTo('user');
}
로그인 후 복사

그러나 "with()" 함수를 사용하여 두 테이블을 조인하면 기본적으로 두 번째 테이블의 모든 열이 선택되는 것을 볼 수 있습니다. "User" 테이블에서 "id" 및 "username"과 같은 특정 열만 검색한다고 가정해 보겠습니다. 다음 코드 조각으로는 충분하지 않습니다.

Post::query()
    ->with('user')
    ->get();
로그인 후 복사

목표를 달성하려면 "with()" 함수에 전달된 배열의 두 번째 인덱스로 클로저 함수를 전달할 수 있습니다.

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

이 클로저를 사용하면 두 번째 테이블에서 검색할 열을 지정할 수 있습니다. 이 경우 "User" 테이블에서 "id" 및 "username" 열만 선택됩니다.

참고: 답변에서 언급했듯이 기본 키("id" " 이 경우)는 올바른 결과 검색을 보장하기 위해 $query->select() 메소드의 첫 번째 매개변수여야 합니다.

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

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