РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
985 of 1392 menu

Метод pluck

Метод pluck применяется к коллекции или результату запроса Eloquent и возвращает коллекцию значений указанных полей. Первым параметром передаётся имя поля или нескольких полей в виде строки через запятую, вторым - ключ для индексации.

Синтаксис

<?php $collection->pluck($field, $key); ?>

Пример

Давайте извлечём заголовки статей из коллекции:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $articles = Article::all(); $titles = $articles->pluck('title'); $res = $titles->toArray(); print_r($res); } } ?>

Результат выполнения кода:

["article 1", "article 2", "article 3", "article 4", "article 5"]

Пример

Давайте извлечём заголовки статей с индексацией по идентификатору:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $articles = Article::all(); $titles = $articles->pluck('title', 'id'); $res = $titles->toArray(); print_r($res); } } ?>

Результат выполнения кода:

[ 1 => "article 1", 2 => "article 2", 3 => "article 3", 4 => "article 4", 5 => "article 5" ]

Пример

Давайте извлечём заголовки статей только для опубликованных записей:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $articles = Article::where('status', 'published')->get(); $titles = $articles->pluck('title'); $res = $titles->toArray(); print_r($res); } } ?>

Результат выполнения кода:

["article 1", "article 3", "article 5"]

Пример

Давайте извлечём несколько полей с использованием точки:

<?php namespace AppHttpControllers; use AppModelsArticle; use IlluminateHttpRequest; class ArticleController extends Controller { public function index() { $articles = Article::all(); $data = $articles->pluck('title', 'user.name'); $res = $data->toArray(); print_r($res); } } ?>

Результат выполнения кода:

[ "John" => "article 1", "Jane" => "article 2", "John" => "article 3", "Mike" => "article 4", "Jane" => "article 5" ]

Пример

Давайте используем pluck на массиве:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportCollection; class ArticleController extends Controller { public function index() { $users = collect([ ['name' => 'John', 'age' => 25], ['name' => 'Jane', 'age' => 30], ['name' => 'Mike', 'age' => 35] ]); $names = $users->pluck('name'); $res = $names->toArray(); print_r($res); } } ?>

Результат выполнения кода:

["John", "Jane", "Mike"]

Пример

Давайте используем pluck с несколькими полями:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportCollection; class ArticleController extends Controller { public function index() { $users = collect([ ['name' => 'John', 'email' => 'john@example.com'], ['name' => 'Jane', 'email' => 'jane@example.com'], ['name' => 'Mike', 'email' => 'mike@example.com'] ]); $data = $users->pluck('name', 'email'); $res = $data->toArray(); print_r($res); } } ?>

Результат выполнения кода:

[ "john@example.com" => "John", "jane@example.com" => "Jane", "mike@example.com" => "Mike" ]

Пример

Давайте используем pluck с вложенными полями через точку:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportCollection; class ArticleController extends Controller { public function index() { $users = collect([ ['id' => 1, 'profile' => ['city' => 'Moscow', 'country' => 'Russia']], ['id' => 2, 'profile' => ['city' => 'London', 'country' => 'UK']], ['id' => 3, 'profile' => ['city' => 'Paris', 'country' => 'France']] ]); $cities = $users->pluck('profile.city', 'id'); $res = $cities->toArray(); print_r($res); } } ?>

Результат выполнения кода:

[ 1 => "Moscow", 2 => "London", 3 => "Paris" ]

Смотрите также

  • метод map,
    который применяет функцию ко всем элементам коллекции
  • метод filter,
    который фильтрует коллекцию по заданному условию
  • метод get,
    который получает элемент коллекции по ключу
  • метод keys,
    который возвращает все ключи коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить