[英]Laravel - Eager Loading BelongsToMany Relationship
我在兩個實體/表之間有一對多的關系。
/**
* Get all of the products.
*/
public function products()
{
return $this->belongsToMany(Product::class)->select(
[
'products.id',
'products.title',
'products.sku',
'automation_products.automation_id as auto_id',
'display_order',
]
)->orderBy('display_order');
}
當我想要預加載這種關系時,后台似乎有重復的查詢在運行。 我使用此代碼來急切加載我的關系:
$automation = \App\Models\Automation::with('products')->whereId(1)->get()->first();
dump($automation->products()->get());
dump($automation->products()->get());
dump($automation->products()->get());
有什么我想念的嗎?
謝謝回復。
將加載關系加載到 model 屬性中。
您可以像$automation->products
一樣訪問此屬性 - 無論她被調用多少次 - 查詢都將通過預加載執行一次。
但是,當您調用 like ->products()->get()
- eloquent 執行查詢時,因為您現在告訴“ get()
relation products()
”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.