انتقل إلى محتوى الدرس

Conditional Attributes in Resources الخصائص الشرطية داخل موارد API

تحويل نماذج البيانات إلى استجابات JSON معيارية عبر Eloquent API Resources وتضمين العلاقات المشروطة بـ whenLoaded.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

أحياناً نحتاج إلى إظهار حقل معين في استجابة JSON فقط إذا كان المستخدم مديراً أو عند تحقق شرط منطقي محدد. تساعد دالة $this->when على استبعاد المفتاح نهائياً من الاستجابة عندما تكون نتيجة الشرط غير متحققة.

  • التضمين الشرطي (Conditional Inclusion): تدرج دالة $this->when الحقل وقيمته فقط عندما يتحقق الشرط المنطقي الأول.
  • التقييم الكسول بالإغلاق (Lazy Value Closures): مرر دالة مغلقة كوسيط ثانٍ في $this->when لكي لا تُحسب القيمة إلا عند تحقق الشرط.
  • دمج عدة حقول (Merging Multiple Fields): استخدم دالة $this->mergeWhen لإدراج مصفوفة كاملة من الحقول الإدارية عند تحقق الشرط.
PHP
public function toArray(Request $request): array
{
    $isAdmin = $request->user()?->isAdmin();
    return [
        'id'     => $this->id,
        'secret' => $this->when($isAdmin, 'xyz'),
    ];
}