/ / slučku cez vrecká chybových hlásení a potom vytvoriť nové pole - php, laravel, laravel-5.2

slučku cez vrecká chybových správ a potom vytvoriť nové pole - php, laravel, laravel-5.2

Snažím sa prechádzať cez sadu chybových správ ($ validator-> errors () -> getMessages ()) a posunúť jeho objekty do iného poľa ($ 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;

a potom vytvorí slučku k novej poľa (chyba $) a vytvoriť reťazec základňu o nové objekty array ($ 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 );

ale vracia mi chybu

Konverzný riadok 113 na reťazec

tu je odpoveď, keď nie je slučka na $ error array na vytvorenie reťazca $ str

{"úspech": false, "správa": [["Vyžaduje sa pole používateľského mena."], ["Vyžaduje sa heslo" pole je> povinné. "]]}

odpovede:

0 pre odpoveď č. 1

každý kľúč v chybách môže obsahovať viac ako jednu chybu, takže to bude reťazec ...

tak by ste to mohli urobiť:

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;

tu dostanete pole všetkých chybových hlásení ...