2016-11-07 8 views
6

लार्वेल को 5.1 से 5.3 तक अपग्रेड करने के बाद, मुझे प्रमाणीकरण के साथ कुछ विषम समस्याएं मिली हैं।लैरवेल 5.3 सत्यापन विफल होता है जब वेरिएबल शून्य होते हैं

firstName null 

और सत्यापन नियमों इस तरह हैं::

$validator = Validator::make($postData, [ 
       'firstName'   => 'string|max:255', 
       'lastName'   => 'string|max:255' 
      ]); 

ऊपर "The XYZ must be a string." जैसे संदेश कुछ के साथ विफल रहता है

मैं इस तरह एक डेटा पोस्ट करते हैं। क्या मुझे समझ नहीं आता है:

  1. क्यों है सत्यापन में विफल रही है जब यह required के रूप में सेट नहीं है? मतलब, इसे अनदेखा करना चाहिए और यदि कोई मान खाली है, तो उसे एक त्रुटि फेंकना चाहिए, है ना?

  2. मान null के रूप में सेट होने पर सत्यापन विफल क्यों होता है?

  3. पैरामीटर बिल्कुल नहीं भेजे जाने पर सत्यापन विफल क्यों होता है? (lastName जो सभी पर तैनात नहीं किया जाता)

कुछ Laravel 5.3 सत्यापन में परिवर्तित किया गया?

उत्तर

17

nullable नियम जोड़ें:

'firstName' => 'string|max:255|nullable', 
'lastName' => 'string|max:255|nullable' 

क्षेत्र सत्यापन के तहत null हो सकता है। यह विशेष रूप से तब उपयोगी होता है जब तारों और पूर्णांक जैसे आदिम को सत्यापित किया जाता है जिसमें null मान हो सकते हैं।

+0

बिल्कुल सही। यह तय है। धन्यवाद! एक बार एसओ मुझे अनुमति देता है तो मैं 10 मिनट में अपना जवाब स्वीकार करूंगा। एक त्वरित सवाल, लार्वेल 5.3 में यह परिवर्तन हुआ? Cuz मुझे 5.1 में यह समस्या नहीं मिली और मैंने सत्यापन नियमों में कभी भी शून्य नहीं जोड़ा। – Neel

+1

@Neel 5.2 में 'nullable' नियम के लिए कोई कोड नहीं देखता है। यह केवल 5.3 में है। तो मुझे लगता है कि उन्होंने सत्यापन में कुछ बदल दिया है। –

+1

यह समझ में आता है। इसे इंगित करने के लिए आपको बहुत धन्यवाद @ एलेक्सी। यह बहुत उपयोगी था! – Neel

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