Methods thông dụng của collection trong laravel

2nd Nov 2022
Methods thông dụng của collection trong laravel
Table of contents

Trong laravel sử dụng Collection giúp lập trình viên có thể xử lý nhanh chóng dữ liệu trả về sau khi truy vấn Eloquent. Để sử dụng nó, bạn cần import class Illuminate\Support\Collection và dùng collect helper để khởi tạo mới một đối tượng.

Nội dung

1. All() : Lấy ra tất các giá trị trong 1 collection.

Ví dụ:

        $collectionAll = collect([
            [
                'user_id' => '1',
                'title' => 'Helpers in Laravel',
                'content' => 'Create custom helpers in Laravel',
                'category' => 'php'
            ],
            [
                'user_id' => '2',
                'title' => 'Testing in Laravel',
                'content' => 'Testing File Uploads in Laravel',
                'category' => 'php'
            ],
            [
                'user_id' => '3',
                'title' => 'Telegram Bot',
                'content' => 'Crypto Telegram Bot in Laravel',
                'category' => 'php'
            ],
        ]);
        $checkAll = collect($collectionAll)->all();

Kết quả:

Methods thông dụng của collection trong laravel

2.Filter() : Lấy ra các giá trị thỏa mãn 1 điều kiện nhất định.

Ví dụ :

        $filter = $collectionAll->filter(function($item) {
            if ($item['user_id'] == 2) {
                return true;
            }
        });
        $checkFilter = $filter->all();

Kết quả :

Methods thông dụng của collection trong laravel

3. Duplicate() : Lấy ra các phần tử trùng và nếu có 2 phần tử cùng giá trị thì lấy phần tử cuối cùng trường hợp có tham số đầu vào.

Ví dụ :

$collDuplicateTwo = collect([
            ['model' => 'A8', 'Brand' => 'Audi'],
            ['model' => 'W150', 'Brand' => 'Mercedes'],
            ['model' => 'W150', 'Brand' => 'Maruti'],
        ]);
        $checkDuplicateTwo = $collDuplicateTwo->duplicates('model')->toArray();

Kết quả :

Methods thông dụng của collection trong laravel

4. Only() : Lọc các giá trị trong collection theo keys

Ví dụ :

        $collectionOnly = collect(['name' => 'hoanpham', 'gender' => 'Male', 'age' => 24, 'Nationality' => 'VN']);
        $checkOnly = $collectionOnly->only(['name','gender'])->toArray();

Kết quả :

Methods thông dụng của collection trong laravel

5. Map() : lọc qua các phần tử của collection và tại đây có thể thay đổi giá trị trả về

Ví dụ :

        $collectionMap = collect([1, 2, 3, 4, 5]);

        $multiplied = $collectionMap->map(function ($item, $key) {
            return $item * 2;
        });

Kết quả :

Methods thông dụng của collection trong laravel

6. Reject() : Loại bỏ các giá trị trong collection nếu thoả mãn điều kiện cho trước

Ví dụ :

        $collectionReject = collect([1, 2, 3, 4]);
        $filtered = $collectionReject->reject(function ($item) {
            return $item > 2;
        });

Kết quả :

Methods thông dụng của collection trong laravel

7. Each() : Duyệt qua các phần tử của collection đồng thời bạn có thể thoát khỏi vòng lặp nếu xét và thỏa mãn điều kiện

Ví dụ :

        $collectionEach = collect([ 'London', 'Paris', 'New York', 'Toranto', 'Tokyo']);
        $checkEach = [];
        $collectionEach->each(function ($item) use (&$checkEach) {
            if ($item == 'Paris') {
                return false;
            }
            array_push($checkEach, $item);
        });

Kết quả :

Methods thông dụng của collection trong laravel

8. GroupBy() : Gom nhóm các giá trị của collection cùng 1 key

Ví dụ:

 $collectionGroupBy = collect([
            ['name' => 'Hoan1' , 'age' => 24, 'country' => 'VN'],
            ['name' => 'Hoan1' , 'age' => 24, 'country' => 'VN1'],
            ['name' => 'Hoan3' , 'age' => 26, 'country' => 'VN'],
            ['name' => 'Hoan4' , 'age' => 27, 'country' => 'VN']
        ]);
        $checkGroupByTwo = $collectionGroupBy->groupBy(function ($item , $key) {
            return $item['name'] . $item['country'] . $key;
        });

Kết quả:

Methods thông dụng của collection trong laravel

9. Join() : Nối các giá trị trong 1 item thành 1 string

Ví dụ :

        $collectionJoin = collect(['a', 'b', 'c']);
        $checkJoin = $collectionJoin->join(', ', ', and ');

Kết quả :

Methods thông dụng của collection trong laravel

10. KeyBy() : Lọc ra các giá trị trong collection theo key và nếu các item có cùng key thì giá trị item cuối sẽ được lấy

Ví dụ:

$collectionKeyBy = collect([
            ['product_id' => 'prod-100', 'name' => 'Desk'],
            ['product_id' => 'prod-200', 'name' => 'Chair'],
            ['product_id' => 'prod-200', 'name' => 'Chair2'],
        ]);

        $keyed = $collectionKeyBy->keyBy('product_id')->toArray();

Kết quả:

Methods thông dụng của collection trong laravel

11. Merge() : tạo ra 1 collection mới từ việc gom nhóm các phần tử trong các collection cũ

Ví dụ :

        $collectionMerged = collect(['HoanOne', 'HoanTwo']);
        $merged = $collectionMerged->merge(['HoanThree', 'HoanFour']);

Kết quả :

Methods thông dụng của collection trong laravel

12. Pluck() : lọc ra các giá trị theo key

Ví dụ :

$collectionPluck = collect([
            ['product_id' => 'prod-100', 'name' => 'Desk'],
            ['product_id' => 'prod-200', 'name' => 'Chair'],
            ['product_id' => 'prod-200', 'name' => 'Chair2'],
        ]);
        $plucked = $collectionPluck->pluck('name');

Kết quả :

Methods thông dụng của collection trong laravel

13. Reduce() : tái tạo các giá trị trong collection thành 1 giá trị đơn

Ví dụ :

 $collectionReduce = collect([
            'hoanOne' => 1000,
            'hoanTwo' => 1000,
            'hoanThree' => 1000,
        ]);

        $ratio = [
            'hoanOne' => 1,
            'hoanTwo' => 2,
            'hoanThree' => 3,
        ];

        $checkReduce = $collectionReduce->reduce(function ($carry, $value, $key) use ($ratio) {
            return $carry + ($value * $ratio[$key]);
        });

Kết quả :

Methods thông dụng của collection trong laravel

 

Bạn thấy bài viết này như thế nào?
1 reaction

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Danh sách này có 4 sản phẩm nên chưa cần phân trang, nếu số lượng sản phẩm lên đến vài chục sản phẩm

Hiện nay kiến trúc Microservices đang là chủ đề được cộng đồng Developer vô cùng quan tâm

Hôm nay chúng ta cùng tìm hiểu về Eloquent trong Laravel với mối quan hệ nhiều - nhiều (many to many relationship)

Kiểm soát hợp lí truy cập nội dung trang web là yếu tố quyết định trong việc điều hành một máy chủ bảo mật.

Trong lập trình web, authorization (phân quyền) là chức năng vô cùng quan trọng và không thể thiếu