Los casteos de los modelos se convirtieron a métodos en Laravel 11
- Andrés Cruz

Los Model Cast en Laravel 10 se definen mediante la propiedad $casts. Sin embargo, en Laravel 11, puedes definir un método casts(), que abre la posibilidad de usar métodos estáticos en ruedas integradas, así como definir métodos estáticos para ruedas personalizadas.
Los Model Cast en Laravel 10 se definen mediante la propiedad $casts. Sin embargo, en Laravel 11, puedes definir un método casts(), que abre la posibilidad de usar métodos estáticos en ruedas integradas, así como definir métodos estáticos para ruedas personalizadas:
use App\Enums\UserOption;
use Illuminate\Database\Eloquent\Casts\AsEnumCollection;
// ...
/**
* Get the attributes that should be cast.
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options' => AsEnumCollection::of(UserOption::class),
];
}
En Laravel 10, la misma conversión se vería así, ya que no se pueden llamar métodos estáticos al definir una propiedad:
protected $casts = [ 'options' => AsEnumCollection::class.':'.UserOption::class,];
Esta actualización es compatible con versiones anteriores de Laravel 10 y aún puede definir conversiones a través de la propiedad $casts combinada con el nuevo método casts(). La propiedad $casts y el método casts() se fusionan, y las claves del método tienen prioridad sobre la propiedad $casts.
Se recomienda mover las conversiones a la versión del método si desea aprovechar los métodos estáticos para las ruedas integradas.
Articulo original:
https://laravel-news.com/model-casts

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter