Как мне на примере использовать Laravel 8 model casts?

Я понимаю, что:

protected = casts [

 'id_admin'=> 'boollean'

];

Мы можем менять тип данных в колонке с одного на другой.
Но какая необходимость в этом? Мы же изначально создаем таблицы с определенным, подходящим типом данных для нашего проекта. Представим у меня 10000 пользователей и что дальше?


Ответы (1 шт):

Автор решения: Dmitrii Sedov

Самый базовый пример: 'created_at' => 'datetime:Y-m-d'. А в бд как правило данная дата хранится с типом timestamp а на выходе мы хотим получать (в определённых случаях) обрезая время или форматируя дату как мы хотим.

Далее. Очень часто данные хранятся в виде json в бд. И на выходе после формирования модели мы хотим сразу получать декодированный массив. и чтобы не делать везде json_decode мы можем сделать свой каст и указывать его в данном свойстве

protected $casts = [
    'options' => Json::class, // кастомный каст
];

Очень много примеров в документации. В php 8.1 можно использовать Enum Casting.

→ Ссылка