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

Метод collect

Метод collect класса Request применяется для преобразования всех входных данных запроса (GET, POST, JSON) в объект коллекции Illuminate\Support\Collection. Это позволяет использовать все мощные методы работы с коллекциями, такие как filter, map, pluck, sum и другие. Метод полезен, когда необходимо выполнить сложные преобразования или фильтрацию данных запроса. Первым параметром передаётся ключ элемента, вторым - значение по умолчанию. Если ключ передан, возвращается коллекция значений по этому ключу. Если ключ не указан, возвращается коллекция всех входных данных.

Синтаксис

<?php $request->collect($key); $request->collect($key, $default); ?>

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function index(Request $request) { $res = $request->collect(); return $res; } } ?>

Результат выполнения кода при GET-запросе с параметрами ?name=John&age=30&city=New York:

[ "name" => "John", "age" => "30", "city" => "New York" ]

Пример

Давайте получим коллекцию вложенных данных по ключу 'user' из JSON-запроса:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProfileController extends Controller { public function update(Request $request) { $res = $request->collect('user'); return $res; } } ?>

Результат выполнения кода при JSON-запросе с телом {"user":{"name":"John","email":"john@example.com"}}:

[ "name" => "John", "email" => "john@example.com" ]

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class OrderController extends Controller { public function store(Request $request) { $res = $request->collect() ->filter(function ($value, $key) { return !empty($value); }) ->map(function ($value, $key) { return is_string($value) ? trim($value) : $value; }) ->toArray(); echo json_encode($res); } } ?>

Результат выполнения кода при отправке данных с пустыми значениями:

{"name":"John","email":"john@example.com","age":25}

Пример

Давайте получим коллекцию из вложенного массива с использованием значения по умолчанию:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SettingsController extends Controller { public function index(Request $request) { $res = $request->collect('preferences', []); return $res; } } ?>

Результат выполнения кода при отсутствии ключа 'preferences' в запросе:

[]

Пример

Давайте используем метод collect для извлечения одного поля из всех элементов массива:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProductController extends Controller { public function index(Request $request) { $res = $request->collect('products') ->pluck('name') ->toArray(); echo json_encode($res); } } ?>

Результат выполнения кода при запросе с параметром products в виде массива объектов:

["Laptop","Phone","Tablet"]

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

  • метод all,
    который возвращает все данные запроса в виде массива
  • метод input,
    который получает значение из запроса по ключу
  • метод only,
    который возвращает только указанные поля из запроса
  • метод except,
    который возвращает все данные запроса, кроме указанных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить