Home Web Laravel 8 Method Powerful Yang Dapat Anda Gunakan Pada Laravel Collection

8 Method Powerful Yang Dapat Anda Gunakan Pada Laravel Collection

0

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]