در لاراول، کامپیوتد پروپرتیز (Computed Properties) معمولاً به عنوان ویژگیهای محاسبهشده یا ویژگیهای مجازی (Accessors) شناخته میشوند. این ویژگیها به شما این امکان را میدهند که بدون نیاز به ذخیره کردن داده در دیتابیس، مقادیر خاصی را محاسبه کرده و به مدلهای Eloquent خود اضافه کنید.
در لاراول، میتوانید از Accessor ها برای تعریف ویژگیهای محاسبهشده استفاده کنید. این ویژگیها در هنگام فراخوانی به طور خودکار محاسبه میشوند.
برای تعریف یک Accessor، باید متدی در مدل Eloquent خود تعریف کنید که با get
شروع شود و سپس نام ویژگی مورد نظر به صورت PascalCase (هر کلمه با حرف بزرگ شروع میشود) و در نهایت Attribute
به عنوان پسوند متد اضافه شود.
فرض کنید یک مدل به نام User
دارید و میخواهید یک ویژگی مجازی به نام full_name
داشته باشید که ترکیبی از نام و نام خانوادگی کاربر را برگرداند:
class User extends Model { // Accessor برای ویژگی full_name public function getFullNameAttribute() { return $this->first_name . ' ' . $this->last_name; } }
در مثال بالا، هر زمان که به ویژگی full_name
دسترسی پیدا کنید، لاراول به طور خودکار متد getFullNameAttribute
را اجرا میکند و نتیجهی آن را به شما برمیگرداند.
شما میتوانید به راحتی از این ویژگی در بلید استفاده کنید:
<p>نام کامل: {{ $user->full_name }}</p>
get{AttributeName}Attribute
باشد. به عنوان مثال، اگر میخواهید یک ویژگی به نام full_name
داشته باشید، متد شما باید getFullNameAttribute
نامیده شود.