laravel Eloquent:Collection

4115 ワード

Laravel Eloquent:Collectionはどう言いますか.自分の記録はドキュメントの言うことほどよくありません.ドキュメントの詳細もありません.自分が理解している記録ですね.
詳細ドキュメントアドレス
リンク
次はEloquent:collectionについての私の理解です.前編では、オブジェクトビルダー、IlluminateDatabaseEloquentBuilderについて言及しました.オブジェクトビルダーです.つまり、オブジェクトを生成するとビルダーになります.一方、collectionでは、IlluminateSupportCollectionクラスが配列データの処理にスムーズで便利なパッケージを提供しています.Collectionクラスでは、メソッドチェーンを使用して下位配列のマッチングと削減操作を実行できます.通常、Collectionメソッドは新しいCollectionインスタンスを返します.次に、プロジェクトで出会ったcollectionメソッド、すべてのメソッドについて書きます.ソースドキュメントを見てください.リンク先:集合メソッド;1 all()
collect([1, 2, 3])->all();

// [1, 2, 3]

2 chunk()大きな集合をいくつかの小さな集合に分ける
$collection = collect([1, 2, 3, 4, 5, 6, 7]);
$chunks = $collection->chunk(4);
$chunks->toArray();
// [[1, 2, 3, 4], [5, 6, 7]]

インスタンスを適用するとbladeで使いやすいです.
@foreach ($products->chunk(3) as $chunk)
    <div class="row">
        @foreach ($chunk as $product)
            <div class="col-xs-4">{{ $product->name }}div>
        @endforeach
    div>
@endforeach

3 collapse()値を取るときに便利で呼び出しやすい
$collection = collect([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);

$collapsed = $collection->collapse();

$collapsed->all();

// [1, 2, 3, 4, 5, 6, 7, 8, 9]

4 count()は多くなく、カウント用の5 first()は1行目の値をとり、データベースは1行の値をとると6 flatten()flattenメソッドで多次元の集合を1次元にするのがよい
$collection = collect(['name' => 'taylor', 'languages' => ['php', 'javascript']]);

$flattened = $collection->flatten();

$flattened->all();

// ['taylor', 'php', 'javascript'];

7 get()getメソッドは、所与のキーのデータ項目を返し、存在しない場合nullを返します.
$collection = collect(['name' => 'taylor', 'framework' => 'laravel']);

$value = $collection->get('name');

// taylor

8 sort()配列ソート、9 toArray()toJson()を配列、jsonに変換することは言うまでもない
手によくある問題があればマニュアルを探して、よく覚えておけばOKです