2017-04-22 4 views
1

내 쿼리입니다Laravel 웅변 선택 기능이 원인 빈 관계

$user = User::select(['uuid','name','about'])->with(['education','work'])->first(); 

이 관계 educationwork, 에 대한 빈 데이터를 반환하지만 쿼리에서 select 기능을 제거하면 나는 점점 관계 데이터과도 수익을 생각합니다 내가 원하지 않는 사용자 테이블의 모든 열. 이 문제

답변

2

문제를 해결할 수있는 방법을

관계 (with(...))는 관련 결과를 얻기 위해 추가 쿼리를 실행할 것입니다. users의 수가 많고 works 인 일대 다 관계가 있다고 가정 해 보겠습니다. User::with('work')->find(1) 그러면

select user where id = 1select works where user_id = 1과 같은 두 개의 쿼리가 실행됩니다.

기본적으로 두 번째 쿼리 (관계 데이터 가져 오기)를 수행하려면 select 문에서 id (또는 참조하고있는 열)을 포함시켜야합니다.

수정 : 다른 형태의

$user = User::select(['uuid','name','about', 'id'])->with(['education','work'])->first(); 

같은 원칙은 모든 관계에 적용됩니다. 예를 들어 hasMany의 역수가 belongsTo 인 경우 외래 키 (예 : user_id)를 선택해야합니다.

+1

고맙습니다. –