Laravel 4 - 如何将所有字段的验证错误消息作为JSON结构返回?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

我从Laravel 3升级到Laravel 4.我的应用程序有一些仅用于客户端的AJAX表单(即没有服务器端视图)。因此,我没有使用withErrors()方法将验证错误传递给视图,而是将验证错误对象作为JSON结构返回给客户端。

在Laravel 3中,我有这样的:

$validation = Validator::make(Input::all(), $rules);
if($validation->fails())
{
  return json_encode($validation->errors);
}
//else handle task

但是在Laravel 4中,错误消息是受保护的:

$validation = Validator::make(Input::all(), $rules);
if($validation->fails())
{
  var_dump($validation->messages());
  return json_encode($validation->messages());
}
//else handle task

var_dump($ validation-> messages())返回:

object(Illuminate\Support\MessageBag)[333]
  protected 'messages' => 
    array (size=1)
      'delete_confirm_password' => 
        array (size=1)
          0 => string 'The delete confirm password field is required.' (length=46)
  protected 'format' => string ':message' (length=8)

json_encode($ validation-> messages)返回

{}

问题:如何在Laravel 4中将所有字段的验证错误消息作为JSON结构返回?

提问于
用户回答回答于

下面是另一种将HTTP代码添加到响应中的方法:

return Response::json($validation->messages(), 500);
用户回答回答于

简单使用toJson()方法。

return $validator->messages()->toJson();

扫码关注云+社区