728x90
발생:
연관관계가 정의된 테이블에서 특정 컬럼만 불러오고 싶었다.
deal_no 컬럼 값은 제대로 불러와졌는데 다른 컬럼 값을 불렀을 때는 불러와지지 않았다.
이유:
with('deal:comm')을 사용하여 comm 컬럼 값을 불러오지 못하는 이유는 조회하고자 하는 컬럼에 항상 id 컬럼과 관련 외래 키 컬럼이 포함되어 있지 않았기 때문입니다. 이것은 Laravel에서 관계를 설정할 때 일반적으로 요구되는 사항 중 하나이며, 관계를 설정할 때는 관련된 테이블 간의 연결을 위해 외래 키를 사용해야 합니다. 따라서 이러한 사항을 준수하지 않으면 with('deal:comm')과 같은 관계 로드가 올바르게 작동하지 않을 수 있습니다.
해결방법:
Order::with('deal:deal_id,comm')
발견사항:
아래처럼 특정 컬럼을 불러올 수 있다.
다만 deal_id 만 가능하고 comm 컬럼은 불가하다.
Order::with(['deal' => function ($query) {
$query->select('deal_no');
}])
참고
라라벨 8.x - Relationships-연관관계
라라벨 한글 메뉴얼 8.x - Relationships-연관관계
laravel.kr
* {note} 이 기능을 사용할 때에는, 조회하고자 하는 컬럼에 항상 id 컬럼과 관련 외래 키 컬럼이 포함되어 있어야 합니다.