حمیده دلیری
حمیده دلیری
خواندن ۱ دقیقه·۴ ماه پیش

در مورد Computed Properties در لاراول بیشتر بدانیم!

در لاراول، کامپیوتد پروپرتیز (Computed Properties) معمولاً به عنوان ویژگی‌های محاسبه‌شده یا ویژگی‌های مجازی (Accessors) شناخته می‌شوند. این ویژگی‌ها به شما این امکان را می‌دهند که بدون نیاز به ذخیره کردن داده در دیتابیس، مقادیر خاصی را محاسبه کرده و به مدل‌های Eloquent خود اضافه کنید.

استفاده از Accessor ها (ویژگی‌های محاسبه‌شده)

در لاراول، می‌توانید از 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 را اجرا می‌کند و نتیجه‌ی آن را به شما برمی‌گرداند.

استفاده در Blade Template

شما می‌توانید به راحتی از این ویژگی در بلید استفاده کنید:

<p>نام کامل: {{ $user->full_name }}</p>


نکات مهم:

  1. ویژگی‌های محاسبه‌شده ذخیره نمی‌شوند: مقادیر Accessor ها در دیتابیس ذخیره نمی‌شوند، بلکه در زمان دسترسی محاسبه و برگردانده می‌شوند.
  2. نام‌گذاری متدها: نام متدها باید به صورت دقیق با فرمت get{AttributeName}Attribute باشد. به عنوان مثال، اگر می‌خواهید یک ویژگی به نام full_name داشته باشید، متد شما باید getFullNameAttribute نامیده شود.
  3. کاهش پیچیدگی در محاسبات: سعی کنید محاسبات سنگین را در Accessor ها قرار ندهید، چرا که ممکن است به عملکرد سیستم آسیب برساند.




لاراول
شاید از این پست‌ها خوشتان بیاید