Дисциплины - Ресурсно-компонентное программирование

Основы разработки бэкенда на Laravel - Ресурсы в Laravel - Ответы в формате JSON

В Laravel, чтобы отправить клиенту данные в формате JSON можно любым из перечисленных способов:

  • Из экшна (метода) контроллера вернуть результат запроса с методом toJson(<параметры кодирования>)

    Этот метод можно вызвать как для коллекции объектов модели:

     public function index(){
       return User::all()->toJson(JSON_UNESCAPED_UNICODE);
     }
    

    Так и для отдельного объекта модели:

     public function show(User $user){
       return $user->toJson(JSON_UNESCAPED_UNICODE);
     }
    

    При вызове метода toJson() можно указать параметры кодирования. Так, использованная в приведенных примерах опция кодированая JSON_UNESCAPED_UNICODE указывает не преобазовывать многобайтные символы (например, символы кириллицы) в их коды.

  • Вернуть из экшна контроллера результат вызова метода toArray(). Он полностью аналогичен методу toJson(), но без параметров кодирования

       // для отдельного объекта модели
       return $user->toArray();
       // для коллекции объектов модели
       return User::all()->toArray();
    
  • Если не требуется извлекать связные записи, то можно использовать метод attributesToArray()

        return $user->attributesToArray();
       
  • Вернуть из экшна контроллера результат приведения объекта модели или коллекции к строковому типу

       return (string) User::all();
    
  • Вернуть из эшкна контроллера объект модели или коллекции:

      public function show(User $user){
       return $user
      }
    
  • Если необходимо отправить клиенту закодированные в формат JSON произвольные данные, то можно воспользоваться инструментом json() класса ResponseFactory:

     public function show(User $user){
      return response()->json($user);
     }
    
  • Наконец, для реализации более сложных ответов, можно воспользоваться ресурсными классами. Далее сосредоточимся на ответах с помощью ресурсных классов.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
20421 БГУИР
30421 БГУИР