Desidero creare un servizio web a cui invio un modulo e, in caso di errori, restituisce un elenco codificato jason che indica quale campo è errato.come restituire errori di modulo codificati json in symfony
momento ho solo un elenco di messaggi di errore, ma non un id HTML o un nome dei campi con errori
Ecco il mio codice corrente
public function saveAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$form = $this->createForm(new TaskType(), new Task());
$form->handleRequest($request);
$task = $form->getData();
if ($form->isValid()) {
$em->persist($task);
$em->flush();
$array = array('status' => 201, 'msg' => 'Task Created');
} else {
$errors = $form->getErrors(true, true);
$errorCollection = array();
foreach($errors as $error){
$errorCollection[] = $error->getMessage();
}
$array = array('status' => 400, 'errorMsg' => 'Bad Request', 'errorReport' => $errorCollection); // data to return via JSON
}
$response = new Response(json_encode($array));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
questo mi darà una risposta come
{
"status":400,
"errorMsg":"Bad Request",
"errorReport":{
"Task cannot be blank",
"Task date needs to be within the month"
}
}
ma quello che voglio veramente è qualcosa di simile
{
"status":400,
"errorMsg":"Bad Request",
"errorReport":{
"taskfield" : "Task cannot be blank",
"taskdatefield" : "Task date needs to be within the month"
}
}
Come posso ottenere quello?
per id o nome del campo intendo qualcosa che posso usare per indirizzare il campo in forma ... come un id HTML o nome del campo. – SimonQuest
Se la tua iterazione con foreach ($ errori come $ chiave => $ errore), non è $ chiave quello che stai cercando? – Delapouite
no, sarebbe semplicemente un indice numerico ... Ho bisogno di qualcosa che colpisca l'elemento html – SimonQuest