2015-05-11 3 views
5

डिफ़ॉल्ट रूप से, लैरावेल 'पुष्टिकरण' सत्यापनकर्ता मूल फ़ील्ड में त्रुटि संदेश जोड़ता है, न कि उस फ़ील्ड पर जो आमतौर पर पुष्टि मूल्य होता है।पुष्टि क्षेत्र में त्रुटियों को जोड़ने के लिए Laravel 'पुष्टि' सत्यापनकर्ता कैसे बनाया जाए?

'password' => 'required|confirmed|min:8', 

वहाँ सत्यापनकर्ता बढ़ाने या मूल क्षेत्र के बजाय कुछ चाल का उपयोग हमेशा पुष्टि मैदान पर त्रुटि को दिखाने के लिए यह मजबूर करने के लिए के लिए किसी भी आसान तरीका है?

यदि मैं दो बार अपना पासवर्ड दर्ज करने में विफल रहता हूं, तो त्रुटि पुष्टि फ़ील्ड से संबंधित है, न कि मूल पासवर्ड फ़ील्ड से। या शायद यह सिर्फ हमारे यूएक्स विश्लेषक को नाइटपीकी मिल रहा है ...

+0

के बजाय same नियम का उपयोग करने के लिए है इसका महत्व क्यों क्षेत्र क्या यह के अंतर्गत आता है करता है? आप पासवर्ड फ़ील्ड को ऑटो-पॉप्युलेट नहीं कर सकते हैं (या कम से कम नहीं होना चाहिए) तो बस यह कहकर कि पासवर्ड मेल नहीं खाते हैं ठीक है? – Wader

+0

हमारे यूआई में विशिष्ट फ़ील्ड पर टूलटिप्स के रूप में दिखाए गए सत्यापन संदेश हैं, इस प्रकार यह संदेश दिखाना महत्वपूर्ण है जहां यह अधिक समझ में आता है। – JustAMartin

उत्तर

12

एक तरह से इसके बारे में जाने के लिए confirmed

// ... 

$input = Input::all(); 

$rules = [ 
    'password' => 'required|min:8', 
    'password_confirmation' => 'required|min:8|same:password', 
]; 

$messages = [ 
    'password_confirmation.same' => 'Password Confirmation should match the Password', 
]; 
$validator = Validator::make($input, $rules, $messages); 

if ($validator->fails()) { 
    return back()->withInput()->withErrors($validator->messages()); 
} 
// ... 
+1

धन्यवाद। कभी-कभी लार्वा भ्रमित हो रहा है क्योंकि विभिन्न परिणामों में समान परिणाम प्राप्त करना संभव है। 'पुष्टि' की पुष्टि 'पुष्टि' – JustAMartin

+0

से अधिक अनुकूलन के रूप में महान है! – lean

0

एक समाधान जो जल्दी से दिमाग में आता है password_confirmation फ़ील्ड पर password त्रुटियों को प्रदर्शित करना है।

है कि आप के लिए काम नहीं करेगा, बस पासवर्ड के रूप में password_confirmation क्षेत्र और पासवर्ड पुष्टि के रूप में password क्षेत्र लेबल ताकि त्रुटियां होने पर, यह बजाय password_confirmation लेबल password लेबल के पास दिखाई देगा।

अन्यथा, अपनी खुद की कस्टम सत्यापन विधि को जोड़ना मुश्किल नहीं है।

1
$rules=[ 
      'username'=>'required|max:20', 
      'password1'=>'required|min:8', 
      'password2'=>'required|min:8|same:password1', 
     ]; 
     $error_messages=[ 
      'password2.same'=>'password are not the same password must match same value', 
      'password1.min'=>'password length must be greater than 8 characters', 
      'password2.min'=>'confirm-password length must be greater than 8 characters', 


     ]; 
     $validator= validator($request->all(), $rules, $error_messages); 
     if ($validator->fails()) { 
      return redirect('control_pannel/change_password') 
         ->withErrors($validator) 
         ->withInput(); 
     } 
+0

मैं इस कोड को आजमाता हूं और यह मेरे लिए काम करता है –

संबंधित मुद्दे