Validation errors in AJAX mode
In the ajax response trying something like
.fail(function( data ) {
var response = JSON.parse(data.responseText);
var errorString = '<ul>';
$.each( response.errors, function( key, value) {
errorString += '<li>' + value + '</li>';
});
errorString += '</ul>';
The easiest way is to leverage the MessageBag
object of the validator. This can be done like this:
// Setup the validator
$rules = array('username' => 'required|email', 'password' => 'required');
$validator = Validator::make(Input::all(), $rules);
// Validate the input and return correct response
if ($validator->fails())
{
return Response::json(array(
'success' => false,
'errors' => $validator->getMessageBag()->toArray()
), 400); // 400 being the HTTP code for an invalid request.
}
return Response::json(array('success' => true), 200);
This would give you a JSON response like this:
{
"success": false,
"errors": {
"username": [
"The username field is required."
],
"password": [
"The password field is required."
]
}
}