Problema 1errori di accesso nel controller di Symfony2 per AJAX presentate sotto forma
Mi piacerebbe costruire un modulo di registrazione per sottomissione ajax. I lavori di registrazione sono $form->isValid()
. Tuttavia, se il modulo fallisce la registrazione devo restituire questi errori via ajax.
if ($form->isValid()) {
}else{
$errors = $form->getErrors();
// return some json encoded errors here
}
$form->getErrors()
restituisce un array vuoto anche se la forma non ha convalidato (in questo caso sto testando con un nome utente è troppo breve).
Problema 2
Il secondo problema che ho è che se la forma convalida ma c'è ancora un errore. Ad esempio un campo univoco che qualcuno cerca di inviare per lo stesso valore.
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($form->getData());
$em->flush();
// error could be a username submitted more than once, username is unique field
}else{
// ...
}
Come posso rilevare questo errore e restituirlo tramite json?
Come sarebbe il validatore sapere che qualcuno ha già utilizzato quel nome utente nella tabella? Pensavo che il validatore verificasse se i dati fossero corretti, non se i dati esistessero già, o lo faccia entrambi? – ed209
Un validatore può eseguire qualsiasi tipo di convalida che si codifica per fare.Naturalmente, come è stato notato, esiste già un validatore per l'unicità, UniqueEntity. –