Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря своим методам, они делают код очень простым для понимания и читабельным.
У нас также есть вспомогательная функция collect(), с помощью которой мы можем играть с данными массива.
Расширение класса Illumniate\Support\Collection в Laravel означает, что мы можем добавить наши собственные методы в коллекцию.
Я постараюсь показать это как можно проще.
Я создал маршрут /in CollectionController и теперь давайте посмотрим быстрый пример коллекции в методе index.
public function index() { $myArr = [1,2,3,4,5,6,7,8,9,10];
$collection = collect($myArr); $collection = $collection->chunk(3); } //Result: // Illuminate\Support\Collection {#288 ▼ // app/Http/Controllers/CollectionController.php:15 // #items: array:4 [▼ // 0 => Illuminate\Support\Collection {#283 ▼ // #items: array:3 [▶] // #escapeWhenCastingToString: false // } // 1 => Illuminate\Support\Collection {#284 ▼ // #items: array:3 [▶] // #escapeWhenCastingToString: false // } // 2 => Illuminate\Support\Collection {#286 ▼ // #items: array:3 [▶] // #escapeWhenCastingToString: false // } // 3 => Illuminate\Support\Collection {#287 ▼ // #items: array:1 [▶] // #escapeWhenCastingToString: false // } // ] // #escapeWhenCastingToString: false // }
В приведенном выше методе мы используем вспомогательную функцию collect() для преобразования массива в формат коллекции. А с помощью переменной $collection мы выполняем метод chunk(), чтобы сделать кусок из трех элементов. Он возьмет три элемента из массива и преобразует их в массив, который будет содержать только три элемента.
Таким же образом можно выполнить еще несколько действий над одной и той же коллекцией.
Например, вы хотите получить только первый массив, состоящий из 3 элементов.
$collection->chunk(3)->first();
// Illuminate\Support\Collection {#283 ▼ // app/Http/Controllers/CollectionController.php:15 // #items: array:3 [▼ // 0 => 1 // 1 => 2 // 2 => 3 // ] // #escapeWhenCastingToString: false // }
С помощью этих примеров. Я надеюсь, что вы, по крайней мере, получили представление о том, что делают коллекции.
Я собираюсь объяснить несколько методов, которые мы можем использовать для работы с массивами.
Коллекции в Laravel предоставляют ряд полезных методов для работы с данными. Например, их можно использовать для фильтрации, сортировки, группировки и преобразования данных. Некоторые из наиболее часто используемых методов включают map, filter, reduce, pluck, groupBy, sortBy и take.
$numbers = range(1, 10); $collection = collect($numbers); $doubled = $collection->map(function ($num) { return $num * 2; });
$evens = $collection->filter(function ($num) { return $num % 2 == 0; });
public function index() { $myArr = [1,2,3,4,5,6,7,8,9,10];
$collection = collect($myArr); $total = $collection->reduce(function ($carry, $num) { echo $carry . ' + ' . $num . ' = ' . ($carry + $num); echo '<br>'; return $carry + $num; }, 0); dd($total); } 0 + 1 = 1 1 + 2 = 3 3 + 3 = 6 6 + 4 = 10 10 + 5 = 15 15 + 6 = 21 21 + 7 = 28 28 + 8 = 36 36 + 9 = 45 45 + 10 = 55
public function index() { $users = [ ['name' => 'John', 'email' => '[email protected]'], ['name' => 'Jane', 'email' => '[email protected]'], ['name' => 'Bob', 'email' => '[email protected]'], ]; $collection = collect($users); $emails = $collection->pluck('email'); dd($emails); }
public function index() { $users = [ ['name' => 'John', 'age' => 25], ['name' => 'Jane', 'age' => 30], ['name' => 'Bob', 'age' => 25], ]; $collection = collect($users); $grouped = $collection->groupBy('age'); dd($grouped); }
public function index() { $users = [ ['name' => 'John', 'age' => 25], ['name' => 'Jane', 'age' => 30], ['name' => 'Bob', 'age' => 25], ]; $collection = collect($users); $sorted = $collection->sortBy('name'); dd($sorted->values()->all()); }
В Laravel есть много методов, которые помогут вам не использовать серию Foreach и просто делать вещи с помощью удобных методов.
Теперь я предполагаю, что вы поняли, что такое коллекции. Вы можете посмотреть видео ниже, которое поможет вам продвинуться на шаг вперед.
Это видео было создано Povilas From LaravelDaily
Посмотреть все методы коллекционирования: Laravel Collection Methods
Вы также можете прочитать: Транзакции БД
В целом, коллекции - это мощный инструмент в Laravel, который может помочь вам написать более выразительный и эффективный код и упростить многие общие задачи обработки данных.
20.08.2023 18:21
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".
20.08.2023 17:46
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
19.08.2023 18:39
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.
19.08.2023 17:22
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!
18.08.2023 20:33
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.
14.08.2023 14:49
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.