3просмотров
75.0%от подписчиков
23 ноября 2025 г.
Score: 3
Используем касты (Casts) в Laravel, чтобы держать данные в порядке Привет, разработчики! Сегодня поговорим про касты в Laravel — одну из тех фич, о которых все знают, но используют далеко не всегда. А зря. Зачем нужны касты? У модели есть поля — строки, числа, даты, JSON.
Но Eloquent сам по себе не всегда может привести их к удобному формату. Например:
- settings хранится как JSON в базе
- is_active хранится как tinyint
- created_at нужен в конкретном формате Laravel позволяет автоматически кастовать данные при чтении и записи. Пример Допустим, у нас есть таблица users с полем settings, где хранятся пользовательские настройки в JSON.
// app/Models/User.php class User extends Model
{ protected $casts = [ 'settings' => 'array', 'is_active' => 'boolean', 'created_at' => 'datetime:Y-m-d H:i', ];
}
Что это нам даёт? Теперь:
$user->settings['theme'] = 'dark'; // автоматически сохранится в JSON
$user->is_active; // вернёт true/false, а не 0/1
$user->created_at; // сразу в корректном формате
Пользовательские касты Если нужно что-то сложнее — например, шифрование или преобразование к объекту — можно создать свой каст:
php artisan make:cast EncryptCast
// app/Casts/EncryptCast.php class EncryptCast implements CastsAttributes
{ public function get($model, string $key, $value, array $attributes) { return decrypt($value); } public function set($model, string $key, $value, array $attributes) { return encrypt($value); }
} Применение:
protected $casts = [ 'secret_data' => EncryptCast::class,
];
Вывод Касты упрощают жизнь, уменьшают количество ручной логики и делают код чище. Используйте их там, где данные требуют особого отношения. До встречи — разберём ещё одну фичу Laravel завтра!