Phương pháp nào phá vỡ bộ sưu tập trong laravel?

Bắt đầu từ v5. 4. 12, Bộ sưu tập của Laravel hiện bao gồm một phương thức when cho phép bạn thực hiện các hành động có điều kiện trên các mục mà không phá vỡ chuỗi

Giống như tất cả các phương thức Bộ sưu tập khác của Laravel, phương thức này có thể có nhiều trường hợp sử dụng nhưng một ví dụ mà tôi nghĩ đến là có thể lọc dựa trên tham số chuỗi truy vấn

Để chứng minh ví dụ đó, giả sử chúng ta có một danh sách các máy chủ từ Laravel News Podcast

1$hosts = [

2 ['name' => 'Eric Barnes', 'location' => 'USA', 'is_active' => 0],

3 ['name' => 'Jack Fruh', 'location' => 'USA', 'is_active' => 0],

4 ['name' => 'Jacob Bennett', 'location' => 'USA', 'is_active' => 1],

5 ['name' => 'Michael Dyrynda', 'location' => 'AU', 'is_active' => 1],

6];

Trước đây để lọc dựa trên chuỗi truy vấn, bạn có thể làm như thế này

1$inUsa = collect[$hosts]->where['location', 'USA'];

2

3if [request['retired']] {

4 $inUsa = $inUsa->filter[function[$employee]{

5 return ! $employee['is_active'];

6 }];

7}

Với phương thức when mới, giờ đây bạn có thể thực hiện tất cả điều này trong một chuỗi Bộ sưu tập

1$inUsa = collect[$hosts]

2 ->where['location', 'USA']

3 ->when[request['retired'], function[$collection] {

4 return $collection->reject[function[$employee]{

5 return $employee['is_active'];

6 }];

7 }];

nộp trong

hướng dẫn

Eric L. Barnes

Eric là người tạo ra Laravel News và đã đưa tin về Laravel từ năm 2012

Đối tác tin tức của Laravel

Đối tác tin tức của Laravel

Laravel Collections là một trong những tính năng mạnh mẽ nhất của Laravel. Về cơ bản, các bộ sưu tập là các mảng PHP nhưng đó là cách tiếp cận Hướng đối tượng để xử lý các mảng PHP

xem toàn bộ loạt

  1. Laravel Collections – Giới thiệu về Collections
  2. Bộ sưu tập Laravel – phương thức tạo
  3. Bộ sưu tập Laravel – Các phương thức quấn[] và unwrap[]
  4. Bộ sưu tập Laravel – phương thức map[]
  5. Bộ sưu tập Laravel – phương thức times[]
  6. Bộ sưu tập Laravel – Phương thức sụp đổ []
  7. Bộ sưu tập của Laravel – Phương thức chứa [] & containsStrict []
  8. Bộ sưu tập Laravel – Phương thức each[]
  9. Laravel Collection – Sử dụng Phương thức toJson[]
  10. Bộ sưu tập Laravel – Lọc các mục Bộ sưu tập bằng cách sử dụng where[]
  11. Laravel Collection – Sử dụng phương thức splice[] để xóa các mục

Laravel Collection cung cấp một trình bao bọc trôi chảy, thuận tiện để làm việc với mảng. Trong bài đăng này, chúng ta sẽ tìm hiểu về phương pháp each[] method để lặp qua và thực hiện một số mục hành động trong bộ sưu tập

Lớp Illuminate\Support\Collection cung cấp một trình bao bọc thông thạo, thuận tiện để làm việc với các mảng dữ liệu

mỗi [] Phương pháp

Phương thức each[] của Bộ sưu tập Laravel nhận chức năng gọi lại và thực hiện nó trên từng mục của bộ sưu tập. Nếu hàm gọi lại trả về

1$inUsa = collect[$hosts]->where['location', 'USA'];

2

3if [request['retired']] {

4 $inUsa = $inUsa->filter[function[$employee]{

5 return ! $employee['is_active'];

6 }];

7}

0, thì phương thức each[] sẽ ngắt vòng lặp của nó và trả về tham chiếu cho bộ sưu tập ban đầu. Trong hàm gọi lại, chúng tôi xác định cả tham số

1$inUsa = collect[$hosts]->where['location', 'USA'];

2

3if [request['retired']] {

4 $inUsa = $inUsa->filter[function[$employee]{

5 return ! $employee['is_active'];

6 }];

7}

2 và

1$inUsa = collect[$hosts]->where['location', 'USA'];

2

3if [request['retired']] {

4 $inUsa = $inUsa->filter[function[$employee]{

5 return ! $employee['is_active'];

6 }];

7}

3

Mỗi phương thức của Bộ sưu tập của Laravel giống hệt với PHP gốc cho mỗi vòng lặp

Chữ ký

Chữ ký của phương thức each[] trong lớp

1$inUsa = collect[$hosts]->where['location', 'USA'];

2

3if [request['retired']] {

4 $inUsa = $inUsa->filter[function[$employee]{

5 return ! $employee['is_active'];

6 }];

7}

4 trông giống như bên dưới

/**
 * Execute a callback over each item.
 *
 * @param  callable  $callback
 * @return $this
 */
public function each[callable $callback]
{
    //
}

Thí dụ

Đây là một ví dụ rất cơ bản của phương thức each[], trong đó chúng ta sẽ lặp lại và in tên của các thành phố

use Illuminate\Support\Collection;

$cities = new Collection[[
    'London', 'Paris', 'New York', 'Toranto', 'Tokyo'
]];

$cities->each[function[$item, $key] {
    // Print each city name
    echo $item;
}];

Nếu bạn muốn ngắt vòng lặp với một điều kiện nhất định, bạn có thể thực hiện như bên dưới

$cities->each[function[$item, $key] {
    if [$item == 'Paris'] {
        return false;
    }
    echo $item;
}];

Ví dụ mã trên, sẽ chỉ in “London”

Laravel Eloquent trả về kết quả dưới dạng Laravel Collection, vì vậy chúng ta có thể sử dụng phương thức này để lặp lại kết quả, thay vì sử dụng vòng lặp foreach gốc của PHP

Phương thức thu thập trong Laravel là gì?

Lớp Laravel Collection có một thuộc tính được bảo vệ gọi là $items chứa một mảng chứa tất cả dữ liệu. Trình bao bọc bộ sưu tập cung cấp các phương thức bổ sung để hoạt động trên mảng đó . Nhưng nếu bạn chỉ muốn mảng không có chuông và còi thì có một phương pháp cho điều đó. $emails = thu thập[[ 'abc@gmail.

Làm cách nào để sử dụng skip[] và take[] trong truy vấn Laravel?

Làm cách nào để sử dụng skip[] và take[] trong Laravel Query? . skip[] dùng để bỏ qua số lượng kết quả và take[] dùng để lấy số lượng kết quả từ truy vấn .

Làm cách nào để kiểm tra xem Laravel Collection có trống không?

Sử dụng phương thức isNotEmpty[]. Phương thức isNotEmpty[] trả về true nếu bộ sưu tập được kiểm tra không trống và sai nếu trống. .
Sử dụng phương thức đếm[]. Phương thức count[] trả về số lượng mục bên trong bộ sưu tập. .
Sử dụng Phương thức[] đầu tiên. .
Sử dụng phương thức đếm[]

Làm cách nào để lặp qua Bộ sưu tập trong Laravel?

Tất cả các bộ sưu tập cũng đóng vai trò là trình vòng lặp, cho phép bạn lặp qua chúng như thể chúng là các mảng PHP đơn giản. .
$users = Ứng dụng\Người dùng. trong đó ['hoạt động', 1] -> get[];
foreach [$user là $user] {
tiếng vang $user->name;

Chủ Đề