Amir Alsaeed نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 ما الفائدة من استخدام المصفوفة fillable في كل مودل؟ مثال: class user extends Model{ protected fillable = ['username', 'avatar', 'website_link']; .... } ولماذا يتم استخدامها دوماً في المودل؟ هل يحدث خطأ في حال عدم استخدامها؟ 1 اقتباس
0 سمير عبود نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 المصفوفة fillable ليست إجبارية و إنما يتم إستخدامها في حالة أردنا إتاحة التعيين الجماعي لبعض الحُقول و في هذه الحالة يتم وضع هذه الحقول بداخل هذه المصفوفة. يمكن استخدام التابع create لحفظ سجل جديد في سطر وحيد. لكن قبل القيام بذلك، يجب أن تُعيّن أحد الخاصيات fillable بسبب حماية نماذج Eloquent افتراضيًّا من التعيين الجماعي. لنفترض أنه لديك النموذج User والخاصية name و أردت إنشاء كائن من هذا النموذج ثم تخزينه في قاعدة البيانات فيُمكنك ذلك كالتالي: public function store(Request $request) { // تحقق من الطلب.. $user = new User; $user->name = $request->name; $user->save(); } بهذا الشكل أنت لم تستخدم التعيين الجماعي و في هذه الحالة لست بحاجة لإستخدام المصفوفة fillable. أما إن قمت بالعملية بهذا الشكل: $user = User::create(['name' => 'John Doe']); فسيتم رمي إستثناء من النوع MassAssignmentException و السبب هنا أنك تستخدم التعيين الجماعي و لارافل ستقوم بحمايتك. الآن إن أردت أن تحمي نفسك بنفسك و تُلغي تفعيل حماية لارافل ستستخدم المصفوفة fillable او guarded فالمصفوفة fillable هي بمثابة القائمة البيضاء نضع بها الحقول التي نسمح بتعيينها جماعياً و guarded عكسها. هناك عدة توابع أخرى يُمكن إستعمال التعيين الجماعي معها منها update، firstOrCreate و غيرها .. 1 اقتباس
0 محمد أبو عواد نشر 1 يونيو 2021 أرسل تقرير نشر 1 يونيو 2021 نحدد من خلالها الأعمدة القابلة للتعبئة,لاحظ رجاء السطر التالي protected $fillable = [ 'name','email','password', ]; فمثلا لو كانت Request تحتوي فقط على name و email و password فإن Request ستعمل دون مشاكل وسوف يتم تعبئة الأعمدة الخاصة بهذه الخصائص الموجودة في Request ولكن لو كان مع Request خاصية أخرى مثل username فستحصل على مشكلة MassAssignmentException لأن username غير موجودة في مصفوفة fillable اقتباس
السؤال
Amir Alsaeed
ما الفائدة من استخدام المصفوفة fillable في كل مودل؟
مثال:
class user extends Model{ protected fillable = ['username', 'avatar', 'website_link']; .... }
ولماذا يتم استخدامها دوماً في المودل؟ هل يحدث خطأ في حال عدم استخدامها؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.