もちろん、すべてのセットは反復子でもあり、配列と同じようにループすることができます:
$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 メソッドをオーバーライドする必要があります。