Home » Sciences et technologies » Model Casts passe aux méthodes dans Laravel 11

Model Casts passe aux méthodes dans Laravel 11

by Nouvelles
Model Casts passe aux méthodes dans Laravel 11

Les conversions de modèles dans Laravel 10 sont définies via la propriété de tableau $casts. Cependant, dans Laravel 11, vous pouvez définir une méthode casts(), qui ouvre la possibilité d’utiliser des méthodes statiques sur les roulettes intégrées ainsi que de définir des méthodes statiques pour les roulettes personnalisées :

utilisez AppEnumsUserOption ;

utilisez IlluminateDatabaseEloquentCastsAsEnumCollection ;

//…

/**

* Obtenez les attributs qui doivent être diffusés.

*

* Tableau @return

*/

fonction protégée casts() : tableau

{

retour [

        ’email_verified_at’ => ‘datetime’,

        ‘password’ => ‘hashed’,

        ‘options’ => AsEnumCollection::of(UserOption::class),

    ];

}

Dans Laravel 10, la même distribution ressemblerait à ce qui suit puisque vous ne pouvez pas appeler de méthodes statiques lors de la définition d’une propriété de tableau :

protégé $casts = [

    ‘options’ => AsEnumCollection::class.’:’.UserOption::class,

];

Cette mise à jour est rétrocompatible avec Laravel 10 et vous pouvez toujours définir des transtypages via la propriété $casts combinée avec la nouvelle méthode casts(). La propriété $casts et la méthode casts() sont fusionnées, les clés de méthode ayant priorité sur la propriété $casts.

Je recommanderais de déplacer les conversions vers la version de méthode si vous souhaitez profiter des méthodes statiques pour les roulettes intégrées.

Exemple du lanceur AsEnumCollection

Parallèlement à la mise à jour permettant de définir les transtypages via la méthode casts(), de nouvelles méthodes statiques ont été ajoutées aux roulettes intégrées pour faciliter la définition des transtypages :

AsCollection::using(OptionCollection::class);

AsEncryptedCollection::using(OptionCollection::class);

AsEnumArrayObject::using(OptionEnum::class);

AsEnumCollection::using(OptionEnum::class);

Criez à Nuno Maduroqui a implémenté cette fonctionnalité dans Demande d’extraction # 47237!

2024-02-01 17:03:45
1706812308


#Model #Casts #passe #aux #méthodes #dans #Laravel

You may also like

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.