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

مشكلة في الـ validation في مشروع Laravel

Abdelrahman Mostafa10

السؤال

كيف يمكنني تقييد التحقق الإضافي استنادًا إلى 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...