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

Метод collect

Метод collect применяется к объекту ответа, полученному от HTTP-клиента Laravel. Он декодирует JSON-тело ответа и возвращает экземпляр коллекции Illuminate\Support\Collection. Это позволяет использовать все методы коллекций для работы с данными, полученными из API. Если тело ответа не является валидным JSON, метод вернет пустую коллекцию.

Синтаксис

<?php $response->collect(); ?>

Пример

Давайте отправим GET-запрос к API, который возвращает список пользователей, и преобразуем ответ в коллекцию:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Http; class UserController extends Controller { public function index() { $response = Http::get('https://api.example.com/users'); $users = $response->collect(); foreach ($users as $user) { echo $user['name'] . "\n"; } } } ?>

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

"John Doe" "Jane Smith" "Mike Johnson"

Пример

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

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Http; class PostController extends Controller { public function index() { $response = Http::get('https://api.example.com/posts'); $posts = $response->collect(); $publishedPosts = $posts->filter(function ($post) { return $post['status'] === 'published'; }); foreach ($publishedPosts as $post) { echo $post['title'] . "\n"; } } } ?>

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

"First Post" "Second Post" "Third Post"

Пример

Метод collect также можно использовать для преобразования данных из API в коллекцию и дальнейшего извлечения отдельных значений:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Http; class ApiController extends Controller { public function show() { $response = Http::get('https://api.example.com/data'); $data = $response->collect(); $names = $data->pluck('name'); $firstUser = $data->first(); echo "All names: " . implode(', ', $names->toArray()) . "\n"; echo "First user: " . $firstUser['name'] . "\n"; } } ?>

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

"All names: John, Jane, Mike" "First user: John"

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

  • метод json,
    который преобразует ответ в массив
  • метод body,
    который возвращает тело ответа в виде строки
  • метод status,
    который возвращает HTTP-статус ответа
  • метод object,
    который преобразует ответ в объект
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить