Laravel 8 簡介

2021-07-19 11:42 更新

Eloquent 返回的所有結果集都是 Illuminate\Database\Eloquent\Collection 對象的實例,包括通過 get 方法檢索或通過訪問關聯(lián)關系獲取到的結果。 Eloquent 的集合對象繼承了 Laravel 的 Base Collection,因此它自然也繼承了數十種能優(yōu)雅地處理 Eloquent 模型底層數組的方法。

而且,所有的集合都可以作為迭代器,你可以像遍歷簡單的 PHP 數組一樣來遍歷它們:

$users = App\Models\User::where('active', 1)->get();

foreach ($users as $user) {
    echo $user->name;
} 

不過,集合比數組更加強大,它通過更加直觀的接口暴露出可鏈式調用的 map /reduce 等操作。例如,讓我們移除所有未激活的用戶并收集剩余用戶的名字:

$users = App\Models\User::all();

$names = $users->reject(function ($user) {
    return $user->active === false;
})
->map(function ($user) {
    return $user->name;
}); 

注意:大多數 Eloquent 集合方法會返回新的 Eloquent 集合實例,但是 pluck, keys, zip, collapse, flattenflip 方法除外,它們會返回一個 Base Collection 實例。同樣,如果 map 操作返回的集合不包括任何 Eloquent 模型,那么它會被自動轉換成集合基類。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號