Привет, читатели, сегодня мы узнаем о коллекциях. В 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' => 'john@example.com'], ['name' => 'Jane', 'email' => 'jane@example.com'], ['name' => 'Bob', 'email' => 'bob@example.com'], ]; $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, который может помочь вам написать более выразительный и эффективный код и упростить многие общие задачи обработки данных.
05.05.2023 14:00
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
05.05.2023 11:57
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний, то, не теряя времени, практикуйте наш бесплатный онлайн тест 1100+ JavaScript MCQs и развивайте свои навыки и знания.
05.05.2023 09:26
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут вам настроить, как будет выглядеть ваш сайт Temple, и вы можете настроить его дизайн в зависимости от ваших потребностей в дополнение к более чем 15+...
04.05.2023 13:44
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science, веб-разработки, этот язык программирования по-прежнему остается в тренде.