Class collection di Laravel menyediakan wrapper yang sangat bagus untuk bekerja dengan array. Setiap developer Laravel telah menggunakan kelas Collection, terutama ketika bekerja dengan Eloquent. Pada artikel ini, saya akan memberikan 8 method powerfull yang dapat Anda gunakan untuk mendapatkan hasil maksimal dari Collection Laravel Anda.
1.Memeriksa Duplikat
Method duplicate mengambil semua nilai duplikat dalam koleksi. Array yang dihasilkan akan memiliki original key.
<?php
$collection = collect(['james', 'lisa', 'ryan', 'james', 'brad', 'lisa']);
$collection->duplicates(); // [3 => 'james', 5 => 'lisa']
2.Looping Sebuah Collection
Anda dapat membuat looping collection tanpa menggunakan foreach. Hal ini dapat dilakukan dengan menggunakan method each. Metode each memiliki dua parameter, item dan key, sama seperti foreach.
<?php
$collection->each(function ($item, $key) {
});
3.Has
Method has dapat digunakan untuk memeriksa apakah sebuah key ada di dalam koleksi. Anda bisa mengecek dengan sebuah string atau array sebagai parameter. Jika sebuah array diberikan sebagai parameter, semua nilai array tersebut harus ada sebagai key dalam collection.
<?php
$collection = collect([
'title' => 'Harry Potter',
'author' => 'J.K. Rowling',
'price' => 25
]);
$collection->has('author'); // true
$collection->has(['title', 'price']); // true
$collection->has(['price', 'rating']); // false
4.Implode
Method implode memungkinkan untuk menggabungkan item-item dalam sebuah collection. Cara kerjanya sama persis dengan fungsi implode PHP.
<?php
$collection = collect([
['title' => 'Gift card', 'price' => 50],
['title' => 'Chair', 'price' => 80],
]);
$collection->implode('title', ', ');
// Gift card, Chair
Jika collection hanya berisi string atau nilai numerik, Anda hanya perlu memberikan argumen glue.
<?php
$collection = collect([1,2,'foo',3,'bar']);
$collection->implode('-');
// 1-2-foo-3-bar
5.Push dan Pull
Menambahkan item ke akhir collection dapat dilakukan dengan menggunakan method push. Jika Anda ingin menambahkan item ke awal collection, Anda dapat menggunakan method prepend.
<?php
$collection = collect([1, 2, 3]);
$collection->push(4);
$collection->all(); // [1, 2, 3, 4]
Method pull menghapus dan mengembalikan item dari collection dengan kuncinya.
<?php
$collection = collect([
'title' => 'Harry Potter',
'author' => 'J.K. Rowling',
'price' => 25
]);
$collection->pull('author'); // 'J.K. Rowling'
$collection->all(); // ['title' => 'Harry Potter', 'price' => 25]
6.Shuffle
Method shuffle digunakan untuk mengacak item-item collection.
<?php
$collection = collect([1, 2, 3]);
$shuffled = $collection->shuffle();
$shuffled->all(); // [3, 1, 2] (random example)
7.Max
Anda dapat memperoleh nilai maksimum dari sebuah collection dengan menggunakan method max. Jika collection berisi array, Anda dapat memberikan parameter untuk mendapatkan nilai maksimum dari key tertentu.
<?php
$max = collect([
['title' => 'Gift card', 'price' => 50],
['title' => 'Chair', 'price' => 80]
])->max('price'); // 80
$max = collect([1, 2, 3])->max(); // 3
8.Filter
Sebuah collection dapat difilter menggunakan method filter. Method filter menggunakan callback. Hanya item yang lolos dari pemeriksaan yang diberikan, yang akan disimpan dalam collection.
<?php
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
$even_numbers = $collection->filter(function ($value, $key) {
return $value % 2 == 0;
});
$even_numbers->all(); // [2, 4, 6, 8, 10]