Php Laravel自定义错误验证JSON响应对象到数组
如果用户没有填写必填字段,我会尝试为注册表创建API。验证程序以对象格式显示错误,但Php Laravel自定义错误验证JSON响应对象到数组,php,json,laravel,laravel-5,Php,Json,Laravel,Laravel 5,如果用户没有填写必填字段,我会尝试为注册表创建API。验证程序以对象格式显示错误,但i需要数组格式的json响应 $validator = Validator::make($request->all(), [ 'name' => 'required', 'mobile' => 'required', 'address' => 'required', ]); if ($validator->fails()) { return
i
需要数组格式的json响应
$validator = Validator::make($request->all(), [
'name' => 'required',
'mobile' => 'required',
'address' => 'required',
]);
if ($validator->fails()) {
return response()->json(['error'=>$validator->errors()], 401);
}
电流输出为
预期产量
为了获得预期结果,请使用
foreach()
循环迭代$validator->errors()
,并将所有值推送到一个数组中并返回该数组,如下所示:
$err = array();
foreach ($validator->errors() as $error)
{
array_push($err, $error);
}
return response()->json(['error'=>$err], 401);
正确答案是:
$err = array();
foreach ($validator->errors()->toArray() as $error) {
foreach($error as $sub_error){
array_push($err, $sub_error);
}
}
return ['errors'=>$err];
添加内部foreach是因为一个输入可能有多个验证条件失败(例如:密码太短&太弱
)
Mayank Pandeyz对循环的回答
不会重复,因为在我们将toArray()
添加到$validator->errors()
的末尾之前,访问当前输出有什么问题?您最终找到解决方案了吗?我找到了一个解决方案并将其作为答案发布
$err = array();
foreach ($validator->errors() as $error)
{
array_push($err, $error);
}
return response()->json(['error'=>$err], 401);
$err = array();
foreach ($validator->errors()->toArray() as $error) {
foreach($error as $sub_error){
array_push($err, $sub_error);
}
}
return ['errors'=>$err];