もちろん、すべてのセットは反復子でもあり、配列と同じようにループすることができます:
$users = App\User::where('active', 1)->get();foreach ($users as $user) { echo $user->name;}ただし、セットは直感的なインターフェイスを使用してさまざまなマッピング/単純化操作を提供するため、配列よりも強力です。たとえば、すべての無効なモデルを削除し、既存のユーザーの名前を次のように集約できます:
$users = App\User::where('active', 1)->get();$names = $users->reject(function ($user) { return $user->active === false;})->map(function ($user) { return $user->name;});
注: ほとんどの Eloquent コレクションは新しい Eloquent コレクション インスタンスを返しますが、pluck、keys、zip、collapse、 flatten、flip メソッドは戻ります。コレクション基本クラスのインスタンス。
2. 利用可能なメソッド
カウント
diff
各
フィルター
最初
平坦化
反転
忘れる
forPage
get
groupBy
には
が内破
と交差しています
isEmpty
keyBy
キー
最後の
マップ
マージ
プル
ポップ
プリペンド
プル
プッシュ
プット
ランダム
削減
拒否
反転
検索
シフト
シャッフル
スライス
並べ替え
sortBy
sortByDesc
splice
sum
take
toArray
toJson
変換
unique
値
where
whereLoose
zip
3.
拡張メソッドでカスタム コレクション オブジェクトを使用する必要がある場合、モデルの newCollection メソッドをオーバーライドできます。
<?phpnamespace App;use App\CustomCollection;use Illuminate\Database\Eloquent\Model;class User extends Model{ /** * 创建一个新的Eloquent集合实例 * * @param array $models * @return \Illuminate\Database\Eloquent\Collection */ public function newCollection(array $models = []) { return new CustomCollection($models); }}
newCollection メソッドを定義した後は、Eloquent がモデルの Collection インスタンスを返すたびにカスタム コレクションを取得します。 。 集める。アプリケーションのすべてのモデルでカスタム コレクションを使用する場合は、モデルの基本クラスで newCollection メソッドをオーバーライドする必要があります。