我需要将laravel表单验证错误数组转换为仅字符串的值。 我不想使用json_encode。
在我的情况下,我正在尝试使用ajax执行保存编辑功能。 所以我决定将表单验证错误作为来自控制器的字符串。
编写回调函数将错误数组转换为字符串,因此错误键可能会将表单更改为表单。我该怎么做。
有没有更好的方法来处理这种情况..
这就是我试过的
if ($validator->fails()) {
$error = $validator->getMessageBag()->toArray();
echo '<pre>'; print_r($error); echo '</pre>';
$error_str = '';
foreach ($error as $row){
$error_str .= $row[0].'</br>';
}
echo $error_str;
}
答案 0 :(得分:2)
您不应该使用$row[0]
,因为它只会从特定字段的错误列表中获取第一个错误。
这是一个解决方案,使用其字段名称在一个字符串中获取所有错误。
$str = implode("\n",
array_map( function( $e, $key ){
return $key.": ". implode(", ",$e);
}, $error, array_keys($error) )
);
print_r($str);