Giới thiệu
Chào bạn đến với phần 4 của loạt bài hướng dẫn về Collections trong Laravel 11 trên CodeTuthub.com. Trong phần này, chúng ta sẽ tiếp tục khám phá các phương thức còn lại của Laravel Collections, bao gồm các phương thức quan trọng như take(), toArray(), unique(), when(), where() và nhiều phương thức hữu ích khác. Những phương thức này sẽ giúp bạn nâng cao khả năng thao tác và xử lý dữ liệu trong ứng dụng Laravel của mình.
Xem lại phần các phần trước: Phần 1, Phần 2, Phần 3.
1. Phương thức take()
Phương thức take() trả về một số lượng phần tử giới hạn từ đầu collection. Bạn cũng có thể lấy phần tử từ cuối bằng cách truyền giá trị âm.
Cách sử dụng:
$collection = collect([1, 2, 3, 4, 5]);
$subset = $collection->take(3);
print_r($subset->all());Kết quả:
[1, 2, 3]2. Phương thức tap()
Phương thức tap() cho phép bạn thực thi một callback trên collection mà không thay đổi collection. Sau khi callback được thực thi, collection ban đầu được trả về.
Cách sử dụng:
$collection = collect([2, 4, 6]);
$collection->tap(function ($collection) {
echo $collection->sum(); // 12
});3. Phương thức times()
Phương thức times() tạo ra một collection với một số lượng phần tử lặp lại dựa trên số lần được chỉ định.
Cách sử dụng:
$collection = Collection::times(5, function ($number) {
return $number * 2;
});
print_r($collection->all());Kết quả:
[2, 4, 6, 8, 10]4. Phương thức toArray()
Phương thức toArray() chuyển collection thành một mảng.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$array = $collection->toArray();
print_r($array);5. Phương thức toJson()
Phương thức toJson() chuyển collection thành chuỗi JSON.
Cách sử dụng:
$collection = collect(['name' => 'John', 'age' => 30]);
$json = $collection->toJson();
echo $json;Kết quả:
{"name":"John","age":30}6. Phương thức union()
Phương thức union() kết hợp các phần tử của hai collection lại với nhau, nhưng chỉ thêm các phần tử không tồn tại trong collection đầu tiên.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$union = $collection->union([3, 4, 5]);
print_r($union->all());Kết quả:
[1, 2, 3, 4, 5]7. Phương thức unique() và uniqueStrict()
unique()trả về các phần tử duy nhất trong collection.uniqueStrict()tương tự nhưng kiểm tra cả kiểu dữ liệu.
Cách sử dụng:
$collection = collect([1, 2, 2, 3, '3']);
$unique = $collection->unique();
print_r($unique->all());Kết quả:
[1, 2, 3, '3']8. Phương thức unless()
Phương thức unless() thực thi một callback nếu điều kiện là false.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$collection->unless($collection->contains(4), function ($collection) {
return $collection->push(4);
});
print_r($collection->all());9. Phương thức unlessEmpty()
Phương thức unlessEmpty() thực thi callback nếu collection không rỗng.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$collection->unlessEmpty(function ($collection) {
echo 'Collection is not empty';
});10. Phương thức unlessNotEmpty()
Phương thức unlessNotEmpty() ngược lại với unlessEmpty(), thực thi callback nếu collection rỗng.
Cách sử dụng:
$collection = collect([]);
$collection->unlessNotEmpty(function ($collection) {
echo 'Collection is empty';
});11. Phương thức unwrap()
Phương thức unwrap() trả về một collection hoặc mảng mà không thay đổi giá trị nếu nó đã là một collection.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$unwrapped = Collection::unwrap($collection);
print_r($unwrapped);12. Phương thức values()
Phương thức values() trả về tất cả các giá trị của collection nhưng làm mới lại chỉ số của mảng.
Cách sử dụng:
$collection = collect([10 => 'John', 20 => 'Jane']);
$values = $collection->values();
print_r($values->all());Kết quả:
['John', 'Jane']13. Phương thức when()
Phương thức when() thực thi một callback nếu điều kiện là true.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$collection->when($collection->contains(2), function ($collection) {
return $collection->push(4);
});
print_r($collection->all());14. Phương thức whenEmpty()
Phương thức whenEmpty() thực thi callback khi collection rỗng.
Cách sử dụng:
$collection = collect([]);
$collection->whenEmpty(function ($collection) {
return $collection->push(1);
});
print_r($collection->all());15. Phương thức whenNotEmpty()
Phương thức whenNotEmpty() thực thi callback khi collection không rỗng.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$collection->whenNotEmpty(function ($collection) {
return $collection->push(4);
});
print_r($collection->all());16. Phương thức where() và whereStrict()
where()lọc các phần tử dựa trên một giá trị cụ thể.whereStrict()lọc với kiểm tra nghiêm ngặt về kiểu dữ liệu.
Cách sử dụng:
$collection = collect([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
]);
$filtered = $collection->where('age', 30);
print_r($filtered->all());17. Phương thức whereBetween()
Phương thức whereBetween() lọc các phần tử có giá trị nằm trong một khoảng giá trị.
Cách sử dụng:
$collection = collect([10, 20, 30, 40, 50]);
$filtered = $collection->whereBetween(20, [20, 40]);
print_r($filtered->all());18. Phương thức whereIn() và whereInStrict()
whereIn()lọc các phần tử dựa trên một tập giá trị.whereInStrict()kiểm tra cả kiểu dữ liệu.
Cách sử dụng:
$collection = collect([1, 2, 3, '4']);
$filtered = $collection->whereIn(4, ['1', '4']);
print_r($filtered->all());19. Phương thức whereInstanceOf()
Phương thức whereInstanceOf() lọc các phần tử dựa trên loại class của đối tượng.
Cách sử dụng:
class User {}
$collection = collect([new User, new stdClass]);
$filtered = $collection->whereInstanceOf(User::class);
print_r($filtered->all());20. Phương thức whereNotBetween()
Phương thức whereNotBetween() trả về các phần tử có giá trị không nằm trong một khoảng giá trị cụ thể.
Cách sử dụng:
$collection = collect([10, 20, 30, 40, 50]);
$filtered = $collection->whereNotBetween(20, [20, 40]);
print_r($filtered->all());21. Phương thức whereNotIn() và whereNotInStrict()
whereNotIn()lọc các phần tử không có trong một tập giá trị.whereNotInStrict()kiểm tra nghiêm ngặt kiểu dữ liệu.
Cách sử dụng:
$collection = collect([1, 2, 3, '4']);
$filtered = $collection->whereNotIn('4', [1, 3]);
print_r($filtered->all());22. Phương thức wrap()
Phương thức wrap() bao bọc một giá trị vào trong một collection nếu nó không phải là một collection.
Cách sử dụng:
$collection = Collection::wrap('John');
print_r($collection->all());23. Phương thức zip()
Phương thức zip() kết hợp các collection thành từng cặp phần tử.
Cách sử dụng:
$collection = collect([1, 2, 3]);
$zipped = $collection->zip(['a', 'b', 'c']);
print_r($zipped->all());Kết quả:
[[1, 'a'], [2, 'b'], [3, 'c']]Kết Luận
Trong phần 4 này, chúng ta đã tìm hiểu thêm nhiều phương thức của Laravel Collections, từ các phương thức điều kiện như when(), unless(), cho đến các phương thức lọc dữ liệu như where(), whereBetween(). Những phương thức này giúp bạn linh hoạt hơn trong việc xử lý dữ liệu trong các ứng dụng Laravel, từ thao tác đơn giản đến các quy trình phức tạp.
Tác giả: Đội ngũ CodeTuthub.com









