Atribut Laravel

Barbara Streisand
Lepaskan: 2025-01-20 04:06:09
asal
997 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Tidak perlu sebarang logik tambahan:

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

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!

sumber:php.cn
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan