Mahmoud Alrashidi نشر 19 مارس 2021 أرسل تقرير نشر 19 مارس 2021 أود أن أكون قادرًا على إضافة خاصية / خاصية مخصصة إلى نموذج Laravel / Eloquent عند تحميله ، على سبيل المثال ، في الوقت الحالي ، لدي في المتحكم: public function index() { $sessions = EventSession::all(); foreach ($sessions as $i => $session) { $sessions[$i]->available = $session->getAvailability(); } return $sessions; } سيكون من الجيد حذف الحلقة وأن تكون الخاصية available معيّنة ومعبأة بالفعل. 1 اقتباس
0 سمير عبود نشر 19 مارس 2021 أرسل تقرير نشر 19 مارس 2021 يُمكنك إضافة الخاصية التي تريدها في النموذج بإضافة موصل (accessor): public function getAvailabilityAttribute() { return $this->calculateAvailability(); } ثم تضيف الخاصية إلى مصفوفة appends protected $appends = ['availability']; ليُصبح النموذج بهذا الشكل: class EventSession extends Eloquent { protected $table = 'sessions'; protected $appends = ['availability']; public function getAvailabilityAttribute() { return $this->calculateAvailability(); } } و الآن يُمكن الوصول للخاصية عند تحميل النموذج. 1 اقتباس
0 محمد أيت لعرايك نشر 19 مارس 2021 أرسل تقرير نشر 19 مارس 2021 (معدل) توجد طريقة أخرى لإضافة الخاصية إلى نمودج وهي عن طريق تعريف دالة خاصة في ملف النمودج الخاص بك مثلا: لنفترض أن لديك عمودين باسم first_name و last_name في جدول المستخدمين وتريد استرداد الاسم الكامل. يمكنك تحقيق ذلك من خلال الكود التالي: class User extends Eloquent { public function getFullNameAttribute() { return $this->first_name.' '.$this->last_name; } } الآن يمكنك الحصول على الاسم الكامل full_name على النحو التالي: $user = User::find(1); $user->full_name; تم التعديل في 19 مارس 2021 بواسطة محمد أيت لعرايك 1 اقتباس
السؤال
Mahmoud Alrashidi
أود أن أكون قادرًا على إضافة خاصية / خاصية مخصصة إلى نموذج Laravel / Eloquent عند تحميله ، على سبيل المثال ، في الوقت الحالي ، لدي في المتحكم:
سيكون من الجيد حذف الحلقة وأن تكون الخاصية available معيّنة ومعبأة بالفعل.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.