برمجة

Laravel exclude_if: اختبر ما يصل إلى الحفظ بعد الاستبعاد

فريق فايندو جروب2 دقائق قراءة0 مشاهدة0 تعليقات
مشاركة:
حاسوب يعرض نموذج طلب عن بعد ولوحة بيانات متحقق منها تستبعد حقل المكتب

يختار المستخدم خدمة عن بعد فيختفي حقل المكتب، لكن المتصفح قد يرسل قيمة قديمة لذلك الحقل. اختفاء العنصر ليس عقدًا لخدمة الحفظ. عند استخدام Laravel exclude_if، راجع البيانات الخارجة من التحقق ثم تتبع ما يستلمه المسار الذي يكتب السجل.

ما الذي تستبعده القاعدة؟

توضح وثائق Laravel 12 أن exclude_if تستبعد الحقل من البيانات التي تعيدها validate وvalidated عند تطابق شرط الحقل الآخر. وتوفر Rule::excludeIf شرطًا منطقيًا أو دالة للشروط المركبة. هذا وصف لنتيجة التحقق، وليس وعدًا بحذف القيمة من الطلب الأصلي أو من قاعدة البيانات.

في مثال افتراضي، يحتوي طلب الخدمة على mode وoffice_id. عند اختيار Remote يُستبعد المكتب من البيانات المعتمدة. إذا استخدمت خدمة الحفظ كل بيانات الطلب الخام بعد ذلك، فقد تتجاوز النتيجة التي قصدتها القاعدة. اختبر مدخلات الخدمة نفسها ببيانات مصطنعة.

جرّب التبديل والإرسال المباشر

الطلب التجريبيما تراجعه
خدمة حضورية ومكتب صالحتطبيق قواعد المكتب المطلوبة لذلك الوضع
خدمة عن بعد مع مكتب قديمغياب المكتب عن بيانات الحفظ المعتمدة
تبديل الوضع مرتين قبل الإرسالعدم تسرب قيمة مخفية من حالة سابقة
وضع مجهول أو ناقصرفض واضح وفق العقد، لا اختيار افتراضي غير مقصود

استبعاد القيمة لا يقرر معنى التحديث

في تعديل سجل قائم، هل غياب office_id يعني الاحتفاظ بالمكتب السابق أم إلغاء ارتباطه؟ هذا قرار عمل مستقل. لا تحول الاستبعاد تلقائيًا إلى null دون اتفاق، ولا تفترض أنه يمسح القيمة السابقة. اختبر السجل بعد الحفظ إلى جانب اختبار حمولة الخدمة، وميز الإنشاء عن التعديل.

كذلك لا تعوض القاعدة التفويض: مكتب صالح بنيويًا قد يتبع شركة أخرى. يحتاج اختيار المكتب إلى فحص صلاحيات المستخدم ونطاق المؤسسة في الخادم، مع رفض الحساب التجريبي غير المخول.

سلّم دليلًا على الحدود الفعلية

في تطوير CRM احتفظ بطلبات اختبار منقحة من الأسرار والنتيجة المتوقعة لكل حالة. وضمن المراجعة التقنية وثق مصدر بيانات الحفظ وإصدار Laravel المستخدم. نجاح القاعدة في اختبار منفصل لا يثبت أن كل مسارات الكتابة تعتمد نتيجتها.

التصنيفات:برمجة
شارك:

التعليقات

لا توجد تعليقات بعد

أضف تعليقك

كن أول من يعلق على هذا المقال

02 · تابع القراءة

مقالات ذات صلة