---
title: "Eloquent Casts - автоматичне перетворення типів"
url: https://laravelukraine.com/blog/eloquent-casts-avtomaticne-peretvorennia-tipiv
date: 2026-07-22
---

# Eloquent Casts - автоматичне перетворення типів

База зберігає JSON як рядок. Ви всюди вручну робите decode.

Casts виконують перетворення типів автоматично. Ви працюєте з нативними типами PHP.

**Поширені касти:**

* `array` / `json` - авто-encode/decode
* `boolean` - 0/1 → true/false
* `date` / `datetime` - об'єкти Carbon
* `encrypted` - автоматичне шифрування/дешифрування

**Кастомні касти:**

Можна створювати власні для складніших перетворень.

Порада: використовуйте `encrypted` для чутливих даних (напр. номери карток).

```php
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
}
```
