को पुनर्निर्देशित करने के बजाय अपवाद फेंकता है, जब मैं लैरवेल 5.2 में अपग्रेड किया गया तो मुझे लार्वाले वैधकर्ता के साथ एक समस्या का सामना करना पड़ा। जब मैं नियंत्रक में डेटा को सत्यापित करना चाहता हूं उदाहरण के लिए इस कोड को ले लो।लार्वाले वैधकर्ता
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class ContactController extends Controller
{
public function storeContactRequest(Request $request)
{
$this->validate($request, [
'_token' => 'required',
'firstname' => 'required|string'
'lastname' => 'required|string'
'age' => 'required|integer',
'message' => 'required|string'
]);
// Here to store the message.
}
}
लेकिन किसी भी तरह जब मैं अमान्य डेटा दर्ज यह मेरे पिछले पृष्ठ पर रीडायरेक्ट करेगा नहीं और सत्र के लिए कुछ संदेश फ्लैश लेकिन यह एक अपवाद को गति प्रदान और मुझे एक 500 त्रुटि पृष्ठ वापस देता होगा।
यह मुझे अपवाद है। मैंने प्रलेखन में पढ़ा है कि प्रमाणीकरण अपवाद HttpResponseException के बजाय नया है लेकिन मुझे नहीं पता कि इसके साथ इसका कोई संबंध नहीं है।
[2016-01-05 11:49:49] production.ERROR: exception 'Illuminate\Foundation\Validation\ValidationException' with message 'The given data failed to pass validation.' in /home/vagrant/Code/twentyre-webshop/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php:70
और जब मैं एक अलग अनुरोध कक्षा का उपयोग करता हूं तो यह केवल त्रुटि संदेशों के साथ पुनर्निर्देशित करेगा। ऐसा लगता है कि नियंत्रक में उपयोग की जाने वाली वैध विधि केवल इस व्यवहार से प्रभावित होती है।
यह डिज़ाइन द्वारा है। अनुरोध क्लास रीडायरेक्ट करते हैं, यदि आप ValidatesRequests विशेषता का मैन्युअल रूप से सत्यापन करते हैं और अपवाद को पकड़ने और स्वयं को संभालने के लिए सत्यापित() विधि को सत्यापित करते हैं। –
लेकिन जब मैं इसे नियंत्रक में उपयोग करता हूं तो अपवाद कैसे प्राप्त करूं? – DB93
इसे कोशिश/पकड़ने के खंड में लपेटें –