Bajongskie
Bajongskie

Reputation: 463

Laravel - Validation errors

I want to return the $validator->errors() and include another element "message" to hold the status of the project.

for example:

    if ($validator->fails()) {          

        $response = array('data' => $validator->errors());
        $status = 'failed';
        // I tried this but it didn't work
        // $response = array('data' => $response, 'status' => 'failed')

    } else {

        $status = (Phone::create($post_data)) ? "success" : 'failed';
        $response = array('status' => $status);

    }

    return Response::json($response);

So in javascript side I would load something like:

    if (data.status == 'success') { console.log('success'); }
    else {
         $.each(data, function(index, value) {
            message += '<div class="text-warning"> <span class="glyphicon glyphicon-exclamation-sign"></span>  ' + (data[index]) + '</div>';
         });
    }

Upvotes: 0

Views: 333

Answers (1)

Antonio Carlos Ribeiro
Antonio Carlos Ribeiro

Reputation: 87779

The method errors() returns a MessageBag instance, you need to retrieve an array:

if ($validator->fails()) 
{          

    $response = array(
                      'data' => $validator->errors()->all(), 
                      'status' => 'failed'
                     );

}
else 
{

    $status = (Phone::create($post_data)) ? "success" : 'failed';
    $response = array('status' => $status);

}

return Response::json($response);

Upvotes: 3

Related Questions