تكرار السؤال: …
الإجابة المختصرة
دالة casts() تتيح تعريف التحويلات بصيغة إستاتيكية صارمة الأنواع وتدعم استدعاء الـ Custom Casts مع تمرير معاملات دون الحاجة لمصفوفة نصية.
الشرح
في Laravel 11، أصبح من الممكن استبدال الخاصية المحمية $casts بدالة casts() تعيد مصفوفة من الأنواع. هذا يتيح استخدام ميزات مثل AsEncryptedArrayObject و AsEnumCollection، أو تخصيص تحويلات خاصة تنفذ واجهة CastsAttributes للتحكم في كيفية حفظ القيمة في قاعدة البيانات وكيفية تحويلها لكائن عند القراءة.
مثال بالكود
protected function casts(): array {
return [
'is_admin' => 'boolean',
'options' => 'array',
'status' => OrderStatus::class,
];
}أخطاء شائعة
- الاعتماد على Mutators القديمة (getAttrAttribute) للتحويلات البسيطة التي توفر لها الـ Casts أداءً وأنواعاً أفضل.