شرح صفوف ومحتوى الفقرة
أحياناً نحتاج إلى إظهار حقل معين في استجابة 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'),
];
}