2017-02-19 63 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); 
相關問題