2017-02-19 66 views
2

我需要将laravel表单验证错误数组转换为只有值的字符串。 我不想使用json_encode。简单的数组转换方式

enter image description here

在我的情况,我想用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; 
} 

回答

2

你不应该使用$row[0],因为它只会从特定的错误列表取第一个错误领域。
这是一个解决方案,以字段名称获取一个字符串中的所有错误。

$str = implode("\n", 
     array_map(function($e, $key){ 
      return $key.": ". implode(", ",$e); 
     }, $error, array_keys($error)) 
    ); 
    print_r($str); 
相关问题