2017-04-22 5 views
1

は私のクエリLaravel雄弁セレクト機能の原因空の関係

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

あり、これは、関係educationworkのための空のデータを返す が、私は、クエリからselect機能を削除する場合、私は関係でデータを取得し、それにも戻っています私が望まないユーザーテーブルのすべての列。この問題

答えて

2

問題を解決することができますどのように

は関係(with(...))は、関連する結果を得るために追加のクエリを実行することです。 usersには、多くの場合、worksが1対多の関係にあるとします。 User::with('work')->find(1)は、これらの2つのクエリ:

select user where id = 1およびselect works where user_id = 1を実行します。

基本的に、2番目のクエリ(リレーションシップデータを取得)を実行するには、selectステートメントにid(または参照している列)を含める必要があります。

修正:異なる形で

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

同じ原則がすべての関係に適用されます。たとえば、hasManyの逆数がbelongsToの場合、外部キー(たとえばuser_id)を選択する必要があります。

+1

ありがとう、これは動作します! –