/ / Schleife durch die Fehlernachrichtentaschen und dann ein neues Array erstellen - php, laravel, laravel-5.2

Durchlaufen Sie die Fehlermeldungen und erstellen Sie ein neues Array - php, laravel, laravel-5.2

Ich versuche, das Array mit den Fehlernachrichten ($ validator-> errors () -> getMessages ()) zu durchlaufen und seine Objekte in ein anderes Array zu verschieben ($ 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;

und schleifen Sie dann zum neuen Array ($ error) und erstellen Sie eine String-Basis für die neuen Array-Objekte ($ 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 );

aber es gibt einen Fehler zurück

Array-zu-String-Konvertierungszeile 113

Hier ist die Antwort, wenn keine Schleife zum $ error - Array erzeugt wird, um einen $ str - String zu erstellen

{"success": false, "message": [["Das Feld Benutzername ist erforderlich."], ["Das Feld Kennwort> ist erforderlich."], ["Das Feld Vollständiger Name ist erforderlich."], ["Die E-Mail-Adresse Feld ist> erforderlich. "]]}

Antworten:

0 für die Antwort № 1

Jeder Schlüssel in den Fehlern kann mehr als einen Fehler enthalten, also wird es eine Zeichenfolge sein ...

also könntest du das tun:

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;

Hier erhalten Sie ein Array aller Fehlermeldungen ...