search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

Eloquent Eager loading

Eloquent Eager loading

PHP:7.2

Laravel:5.7

Eloquent 中,可以透過 ModelRelationships 取得不同 Table 之間對應的資料。

而取得的方式又細分為兩種:Eager loadingLazy Eager loading 模式。

Eager loading – with()

這是最廣泛使用的方法,就是在拿資料時,透過 with(),一次把關聯的資料全部拉出來。

範例

$albums = Album::with(['songs'])->limit(10)->get();

使用 with 會執行以下 SQL query:

select * from `album` where `album`.`deleted_at` is null
select * from `song` where `song`.`album_id` in (1, 2, 3, 4, 5) and `song`.`deleted_at` is null

Lazy Eager loading – load()

當不是所有資料都需要把關聯資料取出來時,考量到不必要的效能花費,可以使用 load() 方法,真正需要時才去 DB 拿關聯資料。

範例

$albums = Album::all();
if ($someCondition) {
    $albums->load('song');
}

如果沒有進入條件判斷式,只會執行以下 SQL query:

select * from `album` where `album`.`deleted_at` is null
Categories: Laravel
Tags: LaravelPHP



熱門推薦

本文由 blogjohnsonluorg 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦