15 Laravelコレクションメソッドを知っている必要があります


Laravelは、配列で動作するための非常に強力で便利なラッパーが付属しています.あなたは特別な仕事とララヴァ特別にコレクションを使用している必要があります.Elquentはカスタムコレクションオブジェクトのクエリ結果を返しますLaravel コレクションと上に、使用するいくつかのより偉大な方法を提供します.

この記事では、我々は最高のいくつかを確認し、ララヴァのコレクションの方法を知っている必要がありますあなたの人生を容易にララベルで動作するように.
注意:Elququent CollectionはLaravel Base Collectionクラスを継承します.このため、基本コレクションのメソッドのすべてにアクセスできますが、ベースコレクションオブジェクトは
Laravelの基本コレクションオブジェクトを作成する方法を見てみましょう.
$todocollection = collect([
    [
        'user_id' => '1',
        'title' => ‘Do Laundry,
        ‘description => ‘I ‘have to do laundry ‘
    ],
    [
         'user_id' => '1',
        'title' => ‘Finish Assignment,
        ‘description => ‘I have to finish Maths assignment ‘
    ],
]);
このようにして、Laravelコレクションオブジェクトを作成できます.あなたが提供するすべての強力なメソッドを使用することができますLaravel Collection .
さて、Elquent Collectionオブジェクトの例を見てみましょう.
$todos = ToDo::where('user_id',1)->get();

ここで、$ todosは問い合わせ結果を含んでいる雄弁コレクションオブジェクトです.それは単にあなたの処分でいくつかの強力なコレクションメソッドを内部からの配列です.まだ使えますLaravel Collection 方法しかし、雄弁なコレクションも提供しますadditional methods . 配列に変換したり、コレクションをフィルターしたり、並べ替えたり、マッピングなどの様々なことをすることができます.
いくつかのベストを見て、ラービアのコレクションメソッドを知らなければなりません.

1 ) all ()


Laravel Collectionクラスには、すべてのデータを持つ配列を含む$ itemという保護プロパティがあります.コレクションラッパーには、その配列で動作する追加メソッドが用意されています.しかし、あなたは、単にすべてのそれらの鐘や笛をしないように配列をしたい場合は、そのための方法です!
$emails = collect([
        ‘[email protected],
        ‘[email protected]’,
        ‘[email protected]’,
    ‘[email protected]’
    ]);

    $emails_array = $emails->all();

    dd($emails_array);

/*
Array:4 [▼
  0 => "‘[email protected]"
  1 => "[email protected]"
  2 => "[email protected]’"
  3 => “[email protected]”
]
*/

2 ) avg ()


laravelコレクションによって提供されるAVGメソッドは、平均値を返します.デフォルトでは、コレクション内のすべての値の平均値を提供します.しかし、コレクションがkey => value pairを含んでいるならば、あなたは機能にキーを提供することができます、そして、それは自動的にそのキーへのすべての値の平均を計算します.
$simple_collection = collect([2,5,7,35,25,10]);

$s_avg = $simplex_collection->avg();

// 14

$key_collection = collect(['score' => 98], ['score' => 90], ['score' => 70],['score' => 86]);

$key_avg = $key_collection->avg();

//86

3 ) each ()


laravelコレクションの各メソッドは、PHPとJavaScriptの配列のmap関数と似ています.各メソッドは基本的に各要素をコレクションから受け取り、コールバック関数を適用します.このメソッドを使用して、各要素に対して操作を適用したり、各要素を変更できます.
$collection = collect([1,2,3,4]);

$collection->each(function($item){
    return $item*$item;
});

// [1,4,9,16]

4 ) chunk ()


chunk ()メソッドを使用して、Laravelコレクションを指定したサイズの複数の塊に分割します.
$users = User::all();
$userschunk = $users->chunk(2);

dd($userschunk->toArray());

array:3 [▼
  0 => array:2 [▼
    0 => array:3 [▼
      "id" => 1
      "name" => "John Doe"
      "email" => "[email protected]"
    ]
    1 => array:3 [▼
      "id" => 2
      "name" => "Jack Halt"
      "email" => "[email protected]"
    ]
  ]
  1 => array:1 [▼
    2 => array:3 [▼
      "id" => 3
      "name" => "Sam Pitt"
      "email" => "[email protected]"
    ]
  ]
]
****
  • Laravel 7 Tutorial for Beginner: Create your First To-Do App
  • How to Schedule tasks with cron jobs using Laravel Scheduler
  • 5 )コンテナ()


    多くの場合、コレクションに値が含まれているかどうかを確認する必要があります.Laravelコレクションは、簡単にチェックする方法を提供します.
    container ()関数を使用して、Laravelコレクションにパラメーターとして渡された値が格納されているかどうかを確認します.これはboolean値を返します.
    $users = collect(['name' => 'John Doe', 'email' => "[email protected]"]);
    
    $users->contains('[email protected]');
    
    // true
    
    $users->contains('[email protected]');
    
    // false
    
    また、より粒状の検索のためのキーと値のペアを受け入れることができます.指定されたペアが存在するかどうかをチェックします.
    $users = collect(['name' => 'John Doe', 'email' => "[email protected]"]); 
    
    $users->contains('email', '[email protected]'); 
    
    // true 
    
    $users->contains('name', '[email protected]'); 
    
    // false
    
    任意の値が与えられた条件を通過するかどうかを確認するには、独自の状態でコールバック関数を渡すこともできます.
    $collection = collect([11, 25, 30, 45, 50]);
    
    $collection->contains(function ($value, $key) {
        return $value == 55;
    });
    
    // false
    
    container ()メソッドは、条件を適用するために緩やかな比較を使用します.厳密な比較のためには、{*} ContainsStrength (* Roundメソッド)を使用できます.

    6 ) count () & count ()


    これは非常にシンプルでありながら非常に有用な方法ララヴィルコレクションによって提供される.どのように何回か、ラーラヴコレクションや配列の項目をカウントする必要がありますか?
    count ()メソッドは、指定したLaravelコレクション内の項目数を合計します.
    $collection = collect([10,20,30,40,50]);
    
    $collection->count();
    
    // 5
    
    ララヴェルコレクションはまた、その項目をカウントするより高度な方法を提供します.
    count ()メソッドは、与えられたlaravelコレクション内の項目の出現数を配列で返します.
    $numbercollection = collect([10, 30,30, 50, 50]);
    
    $counts = $numbercollection->countBy();
    
    $counts->all();
    
    // [10 => 1, 30 => 2, 50 => 2]
    

    7 ) filter ()


    は、最も一般的で便利なラーラヴコレクションメソッドの一つです.これは、渡されたコールバック関数を使用してコレクションをフィルタリングすることができます.これは、フィルタリングされたアイテムを持つ新しいコレクションを返し、元のコレクションを変更しません.
    コールバック関数には、フィルタ条件を作成するために使用するパラメータとして、キーキー**を指定します.
    $users = collect(['name' => 'John Doe', 'email' => "[email protected]"]);
    
    $filter = $users->filter(function($value, $key) {
        if ($value['email'] == "[email protected]") {
            return true;
        }
    });
    
    $filter->all();
    /*
    [
        1 =>[
                   'name' => 'John Doe', 
                   'email' => "[email protected]"
         ]
    ]
    */
    
    コールバック関数を提供していない場合は、単にこのメソッドは、コレクション内の任意の空の項目を削除する最も簡単な方法です.

    8 ) get ()


    get ()は、パラメータとして渡すキーで値を返すメソッドです.キーが渡されなかった場合はNULLが返される.
    $users = collect(['name' => 'John Doe', 'email' => "[email protected]"]);
    
    $value = $users->get('name');
    
    // John Doe
    

    9 ) search ()


    search ()は、別の小さな便利なラーラヴィルコレクションメソッドです.指定した値のコレクションを検索し、見つかった場合にインデックスを返します.見つからなかった場合はfalseを返します.
    $numbers = collect([31,21,53,64,27]);
    
    $numbers->search(27);
    
    // 4
    

    10 ) groubby()


    多くの場合、特定のデータごとにデータをグループ化する必要があります.通常、データベースレベルでグループ化しますが、コレクション内のデータをさらにグループ化する必要がある場合が多いです.
    ララヴァコレクションは便利な方法だけを提供します.それはElququentのgroupbyとグループの項目を指定したキーで動作します.
    $orders = collect([
        ['product_id' => 'p10', 'email' => '[email protected]'],
        ['product_id' => 'p10', 'email' => '[email protected]'],
        ['product_id' => 'p11', 'email' => '[email protected]'],
    ]);
    
    $grouped = $orders->groupBy('product_id');
    
    $grouped->toArray();
    
    /*
        [
            'p10' => [
                ['product_id' => 'p10', 'email' => '[email protected]'],
                ['product_id' => 'p10', 'email' => '[email protected]'],
            ],
            'p11' => [
                ['product_id' => 'p11', 'email' => '[email protected]'],
            ],
        ]
    */
    

    11 ) max ()


    Excelでは、この関数を使用して、列または行の最大値を取得することができます.同様に、LALAVELコレクションは、コレクション項目の中で指定されたキーの最大値を取得する** max () *関数を提供します.
    $counter = collect([['count' => 10], ['count' => 20]]);
    
    $counter->max('count');
    // 20
    
    max ()関数のキーを渡さない場合は、それぞれの項目を比較し、最も高いものを返します.

    12 ) pluck ()


    pluck ()は、ララヴィルコレクションのための私のお気に入りで最も使用される方法の一つであり、より雄弁なコレクションのためにより頻繁に使用されます.指定したキーの値を配列のコレクションから取得できます.
    $users = collect([
    ['name' => 'John Doe', 'email' => "[email protected]"],
    ['name' => 'Jack Sparrow', 'email' => "[email protected]"]
    ]);
    
    $emails = $users->pluck('email');
    
    /*
    ["[email protected]","[email protected]"]
    */
    

    13 ) getget ()


    forget ()は、コレクション内のすべての項目から与えられたキーとその値を簡単に削除するlaravelコレクションメソッドです.
    $users = collect(['name' => 'John Doe', 'email' => '[email protected]']);
    
    $users->forget('name');
    
    $users->all();
    
    // ['email' => '[email protected]']
    

    14 ) toarray ()


    *** toarray ()は、コレクションオブジェクトをプレーンなPHP配列に変換するための簡単なララヴィルコレクションメソッドです.
    $users = collect(['name' => 'John Doe', 'email' => '[email protected]']);
    
    $users->toArray();
    
    /*
        [
            ['name' => 'John Doe', 'email' => '[email protected]'],
        ]
    */
    

    15 ) sort ()


    sort ()は、ララーブコレクションを指定したキーでソートするのに非常に役立つ方法です.元のキーを保持し、並べ替え条件に従ってコレクション内の項目を並べ替えます.
    $products = collect([
        ['name' => 'Laptop', 'price' => 2000],
        ['name' => 'Mouse', 'price' => 100],
        ['name' => 'Keyboard', 'price' => 150],
    ]);
    
    $sortedproducts = $products->sortBy('price');
    
    /*
        [       
            ['name' => 'Mouse', 'price' => 100],
            ['name' => 'Keyboard', 'price' => 150],
            ['name' => 'Laptop', 'price' => 2000],
        ]
    */
    
    より高度な並べ替えの場合は、項目をソートする方法を処理するコールバック関数を渡すこともできます.
    一言で言えば、これらはlaravel開発者として知らなければならない最高のlaravelコレクションメソッドです.あなたがチェックアウトすることができますラーラヴコレクションによって提供されるより多くの方法がありますLaravel Documentation .
    郵便15 Must know Laravel Collection Methods ~ Laravel Collections Tutorial 最初に現れたParth Patel - a Web Developer .