Atribut Laravel

Barbara Streisand
Barbara Streisandasal
2025-01-20 04:06:091001semak imbas

Laravel Attributes

Dalam model Laravel Eloquent, jika anda ingin menggunakan sifat profile_image daripada kaedah pengakses dan mengembalikan /user.png sebagai nilai sandaran jika harta itu kosong atau palsu, anda boleh menentukan pengakses dalam model. Begini cara melakukannya:

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

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

Selepas anda mentakrifkan pengakses ini dalam model User anda, apabila anda mengakses harta User contoh model profile_image, ia akan melalui kaedah pengakses ini. Jika nilai tidak kosong ($value dinilai kepada benar), ia akan mengembalikan URL sumber berdasarkan nilai tersebut. Jika tidak, ia mengembalikan URL alternatif /user.png.

Kemudian, dalam templat Blade anda, anda boleh terus menggunakan:

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

Tidak perlu sebarang logik tambahan:

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

Mengapa nama kaedah getProfileImageAttribute($value)?

Dalam ORM Eloquent Laravel, pengakses harta ditakrifkan menggunakan konvensyen penamaan tiga bahagian:

  1. get: Ini menunjukkan bahawa kaedah tersebut ialah pemeroleh pemeroleh. Digunakan apabila anda mendapatkan semula nilai harta.

  2. AttributeName: Bahagian ini mewakili nama harta yang anda ingin tentukan pengaksesnya. Dalam kes ini, ia adalah ProfileImage. Nama hartanah biasanya menggunakan sarung "StudlyCaps", yang bermaksud setiap perkataan dalam nama itu bermula dengan huruf besar, tanpa ruang atau garis bawah antara perkataan.

  3. Attribute: Bahagian ini menunjukkan bahawa kaedah tersebut adalah pelengkap harta. Jadi, menggabungkannya, getProfileImageAttribute($value) bermaksud:

    • get: Ini ialah pengakses pengambil.
    • ProfileImage: digunakan untuk atribut profile_image.
    • Attribute: Ini ialah pengakses hartanah.

Konvensyen penamaan ini digunakan untuk memetakan pengakses harta secara automatik kepada sifat yang sepadan dalam model Eloquent. Apabila anda menggunakan $model->profile_image untuk mendapatkan semula nilai harta profile_image, Laravel secara dalaman mencari kaedah pengakses bernama getProfileImageAttribute untuk memberikan nilai harta itu. Konvensyen ini membantu Laravel secara automatik memanggil kaedah pengakses mengikut keperluan tanpa sebarang konfigurasi tambahan.

Atas ialah kandungan terperinci Atribut Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:. Memerangkap Air Hujan IIArtikel seterusnya:. Memerangkap Air Hujan II