Heim > Backend-Entwicklung > PHP-Tutorial > Laravel-Attribute

Laravel-Attribute

Barbara Streisand
Freigeben: 2025-01-20 04:06:09
Original
1044 Leute haben es durchsucht

Laravel Attributes

Wenn Sie in Laravel Eloquent-Modellen eine profile_image-Eigenschaft einer Accessor-Methode verwenden und /user.png als Fallback-Wert zurückgeben möchten, wenn die Eigenschaft leer oder falsch ist, können Sie im Modell einen Accessor definieren. So geht's:

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

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

Nachdem Sie diesen Accessor in Ihrem User-Modell definiert haben, durchläuft jedes Mal, wenn Sie auf eine User-Eigenschaft einer profile_image-Modellinstanz zugreifen, diese Accessor-Methode. Wenn der Wert nicht leer ist ($value wird als wahr ausgewertet), wird die Ressourcen-URL basierend auf diesem Wert zurückgegeben. Andernfalls wird die alternative URL /user.png zurückgegeben.

Dann können Sie in Ihrer Blade-Vorlage direkt Folgendes verwenden:

<code class="language-blade">auth()->user()->profile_image</code>
Nach dem Login kopieren

Keine zusätzliche Logik erforderlich:

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

Warum lautet der Methodenname getProfileImageAttribute($value)?

Im Eloquent ORM von Laravel werden Eigenschaftszugriffsfunktionen mithilfe einer dreiteiligen Namenskonvention definiert:

  1. get: Dies zeigt an, dass die Methode ein Getter-Accessor ist. Wird verwendet, wenn Sie den Wert einer Eigenschaft abrufen.

  2. AttributeName: Dieser Teil stellt den Namen der Eigenschaft dar, für die Sie einen Accessor definieren möchten. In diesem Fall ist es ProfileImage. Eigenschaftsnamen verwenden in der Regel die Schreibweise „StudlyCaps“, was bedeutet, dass jedes Wort im Namen mit einem Großbuchstaben beginnt, ohne Leerzeichen oder Unterstriche zwischen den Wörtern.

  3. Attribute: Dieser Teil gibt an, dass die Methode ein Eigenschaftsaccessor ist. Zusammengenommen bedeutet getProfileImageAttribute($value) also:

    • get: Dies ist ein Getter-Accessor.
    • ProfileImage: wird für profile_image-Attribute verwendet.
    • Attribute: Dies ist ein Eigenschaftsaccessor.

Diese Namenskonvention wird verwendet, um Eigenschaftsaccessoren automatisch den entsprechenden Eigenschaften im Eloquent-Modell zuzuordnen. Wenn Sie $model->profile_image verwenden, um den Wert einer profile_image-Eigenschaft abzurufen, sucht Laravel intern nach einer Zugriffsmethode namens getProfileImageAttribute, um den Wert der Eigenschaft bereitzustellen. Diese Konvention hilft Laravel, bei Bedarf automatisch Zugriffsmethoden aufzurufen, ohne dass eine zusätzliche Konfiguration erforderlich ist.

Das obige ist der detaillierte Inhalt vonLaravel-Attribute. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage