は私のクエリLaravel雄弁セレクト機能の原因空の関係
$user = User::select(['uuid','name','about'])->with(['education','work'])->first();
あり、これは、関係education
とwork
のための空のデータを返す が、私は、クエリからselect
機能を削除する場合、私は関係でデータを取得し、それにも戻っています私が望まないユーザーテーブルのすべての列。この問題
は私のクエリLaravel雄弁セレクト機能の原因空の関係
$user = User::select(['uuid','name','about'])->with(['education','work'])->first();
あり、これは、関係education
とwork
のための空のデータを返す が、私は、クエリからselect
機能を削除する場合、私は関係でデータを取得し、それにも戻っています私が望まないユーザーテーブルのすべての列。この問題
問題を解決することができますどのように
は関係(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
)を選択する必要があります。
ありがとう、これは動作します! –