从Laravel中的表单验证中获取纯错误消息?

问题描述 投票:1回答:3

我正在使用laravel开发REST服务。我想从laravel表单验证控制器获取确切的错误消息

$validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));
    if ($validator->fails()) {
        $this->res_err_data['error'] = $validator->messages();
        return Response::json($this->res_err_data, 400);
    }

错误信息

{
    "status": "2",
    "data": [],
    "error": {
        "email": [
            "The email field is required."
        ]
    }
}

我想收到电子邮件错误消息只是"The email field is required."而不是["The email field is required."]

php angularjs validation laravel-4
3个回答
0
投票

试试这个...

Add following line after email field

  {{ $errors->first('email', '<div class="errorsetting">:message</div>') }}

Add following line after "$validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));"

if ($validator->fails()) {

return Redirect::to('toyourpage')->withInput()->withErrors($validation->messages());

}

0
投票

那么你可以使用array_map()来改变结构:

$meessages = $validator->messages();
$this->res_err_data['error'] = array_map(function($errors){
    return isset($errors[0]) ? $errors[0] : null;
}, $messages);

0
投票

像这样在你的代码中使用这个$validator->errors()->first()

$validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));
if ($validator->fails()) {
    $this->res_err_data['error'] = $validator->errors()->first();
    return Response::json($this->res_err_data, 400);
}
© www.soinside.com 2019 - 2024. All rights reserved.