Jul*_*eto 4 php laravel laravel-5
我试图循环遍历错误消息包 ($validator->errors()->getMessages()) 数组并将其对象推送到另一个数组 ($error)
$error = array();
$validator = Validator::make($request->all(),[
'username' => 'required|unique:User',
'password' => 'required',
'fullname' => 'required|unique:Profile',
'email' => 'required|email|unique:Profile'
]);
if($validator->fails()) :
foreach($validator->errors()->getMessages() as $m => $key):
array_push($error,$key);
endforeach;
endif;
Run Code Online (Sandbox Code Playgroud)
然后循环到新数组($error)并基于新数组对象($str)创建一个字符串
$str = '<ul class="c_red padding_zero margin_zero menu">';
foreach($error as $e ){ // this is the line 113
$str.= '<li>'.$e.'</li>';
}
$str.='</ul>';
return array('success' => false, 'message' => $error );
Run Code Online (Sandbox Code Playgroud)
但它返回给我一个错误
数组到字符串的转换第 113 行
这是不循环到 $error 数组来创建 $str 字符串时的响应
{"success":false,"message":[["用户名字段为必填项。"],["密码 > 字段为必填项。"],["全名字段为必填项。"],["电子邮件地址字段是 > 必填字段。"]]}
错误中的每个键可能包含多个错误,因此它将是一个字符串......
所以你可以这样做:
if($validator->fails()) :
foreach($validator->errors()->getMessages() as $validationErrors):
if (is_array($validationErrors)) {
foreach($validationErrors as $validationError):
$error[] = $validationError;
endforeach;
} else {
$error[] = $validationErrors;
}
endforeach;
endif;
Run Code Online (Sandbox Code Playgroud)
在这里您将得到所有错误消息的数组...