2016-02-14 5 views
8

यह अजीब है। मैं पूरे दिन अपनी समस्या के समाधान खोजने की कोशिश कर रहा हूं और अधिकांश संस्करण अलग-अलग संस्करणों या विभिन्न अनुरोधों - नियंत्रक हैंडलिंग के कारण मेरे लिए काम नहीं करते हैं।लैरवेल 5.2 फॉर्म सत्यापन त्रुटियों को प्रदर्शित नहीं कर रहा है

यह क्या हो रहा है।

<div class="form-group"> 
    Name * 
    {!! Form::text('name', '', ['class'=>'form-control', 'placeholder'=>'Required field']) !!} 
</div> 

और एक अनुरोध::

मैं एक रूप है

class ContactFormRequest extends Request 
{ 

    public function authorize() 
    { 
     return true; 
    } 


    public function rules() 
    { 
     return [ 
      'name' => 'required|max:64', 
      'email' => 'required|email|max:128', 
      'message' => 'required|max:1024', 
     ]; 
    } 
} 

मैं नाम क्षेत्र को खाली जा रहा हूँ तो यह सत्यापन विफल हो जाता है, और यह संपर्क फ़ॉर्म पृष्ठ पर वापस चाहिए और त्रुटियों को दिखाएं:

@if(count($errors) > 0) 
     <div class="alert alert-danger"> 
      <ul> 
      @foreach($errors->all() as $error) 
       <li>{{ $error }}</li> 
      @endforeach 
      </ul> 
     </div> 
@endif 

यह कुछ भी नहीं दिखाता है! अगर मैं $errors चर vardump, मैं इस मिल:

object(Illuminate\Support\ViewErrorBag)[161] 
    protected 'bags' => 
    array (size=0) 
     empty 

अगर मैं फॉर्म फील्ड ठीक से भरने इसे सफलतापूर्वक मुझे सफलता पृष्ठ पर भेजता है और सब कुछ सही काम करता है। अब मुझे यह त्रुटि चीज ठीक से काम करने की ज़रूरत है: एस

अग्रिम धन्यवाद!

+0

अपने नियंत्रकों हैं __web मिडलवेयर group__ के एक मार्ग भाग घिरा? यदि नहीं, तो उन्हें बाध्य करने का प्रयास करें, लेकिन मुझे आपके कोड में कुछ भी गलत नहीं दिखाई दे रहा है ... – Hammerbot

+0

मुझे लगता है कि आपके नियंत्रक की विधि में पैरामीटर सूची में ContactFormRequest शामिल है? क्या आप स्वयं फॉर्म पर वापस रीडायरेक्ट करते हैं या आप वैधता की डिफ़ॉल्ट कार्रवाई पर भरोसा करते हैं? –

+0

हां। मेरे सभी मार्ग मिडलवेयर 'वेब' के साथ समूहित हैं। और इसके नियंत्रक विधि में इसके पैरामीटर में ContactFormRequest प्रकार के रूप में है! –

उत्तर

3

यह 5.2 अपग्रेड के साथ एक तोड़ने वाली समस्या है। क्या हो रहा है वह मिडलवेयर है जो आपके सभी विचारों के लिए त्रुटियों को उपलब्ध कराने के लिए ज़िम्मेदार है, इसका उपयोग नहीं किया जा रहा है क्योंकि इसे वैश्विक मिडलवेयर से वेब मिडलवेयर समूह में स्थानांतरित किया गया था।

अपने kernel.php फ़ाइल 1-में, आप मिडलवेयर \Illuminate\View\Middleware\ShareErrorsFromSession::class वापस protected$middleware संपत्ति के लिए स्थानांतरित कर सकते हैं:

इसे ठीक करने के दो तरीके हैं।

2-आप अपने सभी वेब मार्गों को मार्ग समूह के साथ लपेट सकते हैं और उन्हें वेब मिडलवेयर लागू कर सकते हैं।

Route::group(['middleware' => 'web'], function() { 
    // Place all your web routes here... 
}); 

देखें इस
laravel-5-2-errors-not-appearing-in-blade

+0

धन्यवाद आपके उत्तर के लिए महोदय। मैंने उस पोस्ट में यह जवाब देखा, लेकिन मेरे सभी मार्ग वेब मिडलवेयर समूह के अंदर हैं! अभी भी काम नहीं कर रहा है। –

+0

आपका वेब मिडलवेयर खाली है और त्रुटि नहीं दिखाती ???? – paranoid

+0

ठीक है मुझे समस्या मिली। यह वास्तव में बहुत बेवकूफ था। POST मार्ग वेब मिडलवेयर समूह –

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