Ich bin wahrscheinlich über Dinge komplizieren, wo es nicht benötigt wird, aber ich habe ein Formular, das über AJAX eingereicht und dann validiert. Ich versuche, den ersten Fehler, der auftritt, zurückzugeben, aber ich kann nur scheinen, validation.required zu holen, das natürlich für mich nutzlos ist; Ich kann dem Benutzer nicht sagen, welches Feld fehlgeschlagen ist, und ich kann auch keine entsprechende Fehlermeldung übersetzen.Validierung - Zurücksenden des ersten Fehlers für eine AJAX Antwort
Was gibt? Wie kann ich eine benutzerfreundliche Fehlermeldung abrufen und sie als JSON-Antwort zurückgeben?
Hier ist, was ich bisher habe gehen ... Der größte how-do-I abruft den Attributnamen für die Fehlermeldung, aber vielleicht ist es ein viel einfacher Weg, dies überhaupt zu verwalten ...
/**
* Adds a new post to the system
*
* @param Request $request
* @return json
*/
public function store(Request $request)
{
// run validation
if(!empty($validator = $this->validate($request)))
{
return response()->json(trans('global/'.$validator->first(), ['attribute' => 'how to get attribute?!?!']), 400);
}
// some other logic...
}
/**
* Validates a post add or post update request
*
* @access private
* @param Request $request
* @return mixed
*/
private function validate(Request $request)
{
// set-up validation rules
$validator = Validator::make($request->all(), [
'username' => 'max:255|required',
'email' => 'email',
'service' => 'numeric|required',
]);
$validator->setAttributeNames([
'username' => "Username",
'service' => "Service",
]);
// run validation
if($validator->fails())
{
return $validator->errors();
}
return true;
}