Maison >développement back-end >tutoriel php >Les attributs de Laravel

Les attributs de Laravel

Barbara Streisand
Barbara Streisandoriginal
2025-01-20 04:06:091001parcourir

Laravel Attributes

Dans les modèles Laravel Eloquent, si vous souhaitez utiliser une propriété profile_image d'une méthode d'accesseur et renvoyer /user.png comme valeur de secours si la propriété est vide ou fausse, vous pouvez définir un accesseur dans le modèle. Voici comment procéder :

<code class="language-php">class User extends Authenticatable
{
    // 其他模型代码...

    public function getProfileImageAttribute($value)
    {
        return $value ? asset('/storage' . $value) : url('/user.png');
    }
}</code>

Après avoir défini cet accesseur dans votre modèle User, chaque fois que vous accédez à une propriété User d'une instance de modèle profile_image, elle passera par cette méthode d'accesseur. Si la valeur n'est pas vide ($value est évaluée à true), elle renverra l'URL de la ressource en fonction de cette valeur. Sinon, il renvoie l'URL alternative /user.png.

Ensuite, dans votre template Blade, vous pouvez directement utiliser :

<code class="language-blade">auth()->user()->profile_image</code>

Pas besoin de logique supplémentaire :

<code class="language-blade"><img alt="User Image" src="{{ auth()->user()->profile_image }}"></img></code>

Pourquoi le nom de la méthode getProfileImageAttribute($value) ?

Dans l'ORM Eloquent de Laravel, les accesseurs de propriété sont définis à l'aide d'une convention de dénomination en trois parties :

  1. get : Cela indique que la méthode est un accesseur getter. Utilisé lorsque vous récupérez la valeur d'une propriété.

  2. AttributeName : Cette partie représente le nom de la propriété pour laquelle vous souhaitez définir un accesseur. Dans ce cas, c'est ProfileImage. Les noms de propriété utilisent généralement la casse « StudlyCaps », ce qui signifie que chaque mot du nom commence par une lettre majuscule, sans espaces ni traits de soulignement entre les mots.

  3. Attribute : Cette partie indique que la méthode est un accesseur de propriété. Donc, les mettre ensemble, getProfileImageAttribute($value) signifie :

    • get : Ceci est un accesseur getter.
    • ProfileImage : utilisé pour les attributs profile_image.
    • Attribute : Ceci est un accesseur de propriété.

Cette convention de dénomination est utilisée pour mapper automatiquement les accesseurs de propriétés aux propriétés correspondantes dans le modèle Eloquent. Lorsque vous utilisez $model->profile_image pour récupérer la valeur d'une propriété profile_image, Laravel recherche en interne une méthode d'accès nommée getProfileImageAttribute pour fournir la valeur de la propriété. Cette convention permet à Laravel d'appeler automatiquement les méthodes d'accesseur selon les besoins sans aucune configuration supplémentaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:. Piéger l'eau de pluie IIArticle suivant:. Piéger l'eau de pluie II