Eloquent Casts - автоматичне перетворення типів
База зберігає JSON як рядок. Ви всюди вручну робите decode.
Casts виконують перетворення типів автоматично. Ви працюєте з нативними типами PHP.
Поширені касти:
array/json- авто-encode/decodeboolean- 0/1 → true/falsedate/datetime- об'єкти Carbonencrypted- автоматичне шифрування/дешифрування
Кастомні касти:
Можна створювати власні для складніших перетворень.
Порада: використовуйте encrypted для чутливих даних (напр. номери карток).
class User extends Model
{
protected $casts = [
'email_verified_at' => 'datetime',
'settings' => 'array',
'is_admin' => 'boolean',
'metadata' => 'json',
'birth_date' => 'date',
'salary' => 'decimal:2',
'credit_card' => 'encrypted',
];
}
// JSON cast - працюємо з масивами
$user->settings = ['theme' => 'dark', 'lang' => 'en'];
$user->save(); // Зберігається як JSON-рядок
$theme = $user->settings['theme']; // Авто-декод
// Datetime cast - Carbon
echo $user->email_verified_at->diffForHumans();
// Boolean cast
if ($user->is_admin) {
// 1/0 у базі, але в коді - true/false
}