Rumah >pembangunan bahagian belakang >tutorial php >Atribut Laravel
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:
get
: Ini menunjukkan bahawa kaedah tersebut ialah pemeroleh pemeroleh. Digunakan apabila anda mendapatkan semula nilai harta.
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.
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!