Как мне на примере использовать Laravel 8 model casts?
Я понимаю, что:
protected = casts [
'id_admin'=> 'boollean'
];
Мы можем менять тип данных в колонке с одного на другой.
Но какая необходимость в этом? Мы же изначально создаем таблицы с определенным, подходящим типом данных для нашего проекта. Представим у меня 10000 пользователей и что дальше?
Ответы (1 шт):
Самый базовый пример: 'created_at' => 'datetime:Y-m-d'. А в бд как правило данная дата хранится с типом timestamp а на выходе мы хотим получать (в определённых случаях) обрезая время или форматируя дату как мы хотим.
Далее. Очень часто данные хранятся в виде json в бд. И на выходе после формирования модели мы хотим сразу получать декодированный массив. и чтобы не делать везде json_decode мы можем сделать свой каст и указывать его в данном свойстве
protected $casts = [
'options' => Json::class, // кастомный каст
];
Очень много примеров в документации. В php 8.1 можно использовать Enum Casting.