اذهب إلى المحتوى

السؤال

نشر

كيف يمكنني تقييد التحقق الإضافي استنادًا إلى required_without_all؟

مثال - Password::min(8)->letters()->mixedCase()->numbers()->symbols() (يرجى التحقق من رمز التحقق أدناه)

كيف أضع منطقًا بحيث إذا تم تمرير required_without_all ولم يكن الحقل فارغًا ، يتم تنفيذ Password::min(8)->letters()->mixedCase()->numbers()->symbols() فقط؟

أحصل على خطأ password field is required، ولا يعمل bail حاولت ذلك.

$request->validate([
            'first_name' => 'required_without_all:first_name,middle_name,last_name,email,password,active',
            'middle_name' => 'required_without_all:first_name,middle_name,last_name,email,password,active',
            'last_name' => 'required_without_all:first_name,middle_name,email,password,active',
            'email' => 'required_without_all:email,first_name,middle_name,last_name,password,active',
            'password' => ['bail', 'required_without_all:first_name,middle_name,last_name,email,active',Password::min(8)->letters()->mixedCase()->numbers()->symbols()],
            'active' => 'required_without_all:first_name,middle_name,last_name,email,password,active'
        ]);

والكود السابق موجود في دالة التحديث، وذلك هو السبب في استخدامي required_wihtout_all ، بحيث يكون مطلوبًا حقلاً واحدًا على الأقل إذا كان المستخدم يقوم بتحديث البيانات.

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

Recommended Posts

  • 0
نشر

يمكنك استخدام sometimes لحل هذه المشكلة

$request->validate([
    'first_name' => 'required_without_all:first_name,middle_name,last_name,email,password,active',
    'middle_name' => 'required_without_all:first_name,middle_name,last_name,email,password,active',
    'last_name' => 'required_without_all:first_name,middle_name,email,password,active',
    'email' => 'required_without_all:email,first_name,middle_name,last_name,password,active',
    'password' => [
        'nullable', // يسمح بالقيمة الفارغة أو الـ null
        'bail',
        'sometimes', // يتم تطبيق القاعدة إذا كانت القيمة موجودة
        Password::min(8)->letters()->mixedCase()->numbers()->symbols(),
    ],
    'active' => 'required_without_all:first_name,middle_name,last_name,email,password',
]);

في هذا الحل، يتم استخدام 'nullable' للسماح بالقيمة الفارغة أو الـ null في حقل كلمة المرور. ثم يتم استخدام 'sometimes' مع 'bail' لتطبيق القاعدة (Password::min(8)->letters()->mixedCase()->numbers()->symbols()) إذا كانت القيمة موجودة (تم تحديث حقل كلمة المرور). يعني ذلك إذا كانت قيمة حقل كلمة المرور موجودة، سيتم تطبيق قواعد التحقق، وإذا كانت فارغة، فلن يتم تطبيقها.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...