Laravel Fractal добавляет сообщение об успехе в ответ

Можно ли добавить сообщение об успешном завершении в ответ JSON с помощью Fractal? Я бы хотел, чтобы структура выглядела следующим образом

{
  "success": true,
  "message": "Clients found",
  "_metadata": {
    "total_count": 2
  },
  "data": {
    "clients": [
      
    ]
  }
}

Я написал следующий код для возврата данных

$response_data = fractal()
    ->collection($person_array)
    ->transformWith(new ResponseTransformer())
    ->toArray();

Нужно ли мне создавать новый сериализатор, чтобы получить этот формат? Я слежу за этой документацией https://packagist.org/packages/spatie/fractalistic, но нет возможности добавить дополнительные ключевые значения, такие как success: true.

Я также хочу использовать этот формат для всех моих ответов API. Можно ли создать общий Transformer, который возвращает данные любого массива, которые я передаю в него, вместо создания преобразователя для каждой модели?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
18
1

Ответы 1

Laravel фрактал позволяет добавлять метаданные в коллекции:

fractal()
->addMeta([
    'status' => [
        'success' => true,
        'code' => 1,
        'message' => 'Test'
    ]
])

Результирующий вывод JSON

 "meta": {
    "status": {
      "success": true,
      "code": 1,
      "message": "Test"
    }
  }

Спасибо, я не был уверен, единственный способ сделать это или нет. есть ли способ переименовать мета-ключ? Я бы хотел, чтобы это был _metadata, чтобы он отображался над данными

Lukerayner 30.03.2021 13:34

Вы можете прочитать это: github.com/spatie/fractalistic#including-meta-data

Anthony Beaumecker 30.03.2021 13:42

Другие вопросы по теме