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

Атрибут hidden

Атрибут hidden модели Eloquent определяет массив полей, которые должны быть скрыты при преобразовании модели в массив или JSON. Это полезно для защиты конфиденциальных данных, таких как пароли или токены доступа. Атрибут применяется при вызове методов toArray, toJson или при возврате модели из контроллера.

Синтаксис

<?php class Model extends Model { protected $hidden = ['field1', 'field2', 'field3']; } ?>

Пример

Давайте скроем поле 'password' в модели User:

<?php namespace AppModels; class User extends Model { protected $hidden = [ 'password', 'remember_token', ]; } ?>

При преобразовании модели в массив эти поля не будут включены:

<?php use AppModelsUser; $user = User::find(1); $res = $user->toArray(); print_r($res); ?>

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

Array ( [id] => 1 [name] => John Doe [email] => john@example.com )

Пример

Использование атрибута hidden вместе с другими полями:

<?php namespace AppModels; class Article extends Model { protected $hidden = [ 'views', 'slug', 'created_at', 'updated_at', ]; } ?>

Теперь при получении статей скрытые поля не будут видны:

<?php use AppModelsArticle; $articles = Article::all(); $res = $articles->toArray(); print_r($res); ?>

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

Array ( [0] => Array ( [id] => 1 [title] => article 1 [content] => text ) [1] => Array ( [id] => 2 [title] => article 2 [content] => text ) )

Пример

Временное скрытие полей с помощью метода makeHidden:

<?php use AppModelsUser; $user = User::find(1); $user->makeHidden(['email', 'name']); $res = $user->toArray(); print_r($res); ?>

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

Array ( [id] => 1 )

Пример

Влияние атрибута hidden на JSON-ответ в контроллере:

<?php namespace AppHttpControllers; use AppModelsUser; class UserController extends Controller { public function index() { $users = User::all(); return response()->json($users); } } ?>

Ответ API будет содержать только видимые поля:

[ {"id":1,"name":"John Doe","email":"john@example.com"}, {"id":2,"name":"Jane Smith","email":"jane@example.com"} ]

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

  • атрибут fillable,
    который определяет поля для массового заполнения
  • атрибут guarded,
    который определяет поля, защищённые от массового заполнения
  • метод makeVisible,
    который делает скрытые поля видимыми
  • метод toArray,
    который преобразует модель в массив
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить