2017-08-02 2 views
1

Ich habe Formular, das Sammlungsart enthält (Feld col).Anzeigen aller Formularfehler in Zweig symfony

Auf Feld in collectionType (nennen Sie es a), ich habe Validator, die Fehler zurückgeben.

Ich versuche, mit {{form_errors(form)}} und {{form_errors(form.col)}} aber sie arbeiten nicht ...

+0

Sind Sie sicher, dass Sie Ihre Validatoren übergeben? –

+0

können Sie Ihren Controllercode anzeigen? Wenn Sie das Objekt nur validieren, erhalten Sie keine Fehler. Sie müssen Ihr Formular bestätigen. http://symfony.com/doc/current/validation.html#using-the-validator-service – Shefali

+0

Fehler Rückgabe durch Validator funktioniert gut, weil '{{Form_rest (Formular)}}' Render Fehler mit Eingaben –

Antwort

0

ich in der Regel tun:

{% if form.col.vars.errors|length %} 
<span> 
    {{ form.col.vars.errors }} 
</span> 
{% endif %} 
+0

'{ {form_errors (form.col)}} 'zeigt keine Fehler an (schau auf meine Frage) –

+0

versuche nur' form.col.vars.errors' –

0

Sie können FormErrorsSerializer verwenden, um die alle Fehler zu erhalten und es als JSON Array zurück, Dieser Code Snip aus einem Projekt Ich arbeite daran

function addOwnership(Request $request) 
{ 
    $id = $request->get('land_id'); 
    $land = $this->getDoctrine()->getRepository('DamanBundleCoreBundle:Land')->find($id); 
    $ownership = new OwnershipHistory(); 
    $ownership_form = $this->createForm('Daman\Bundle\CoreBundle\Form\OwnershipType', $ownership); 
    $ownership_form->handleRequest($request); 

    if ($ownership_form->isSubmitted()) { 
     if ($ownership_form->isValid()) { 

      $em = $this->getDoctrine()->getManager(); 
      $ownership->setLandId($land); 
      $em->persist($ownership); 
      $em->flush(); 
      $response = array('success' => true, 
       'msg' => $this->get('translator')->trans('data_has_been_successfully_added'), 
       'id' => $ownership->getId(), 
       'action' => 'refresh' 
      ); 

     } else { 
      $errors = $this->get('form_serializer')->serializeFormErrors($ownership_form, true, false); 
      $response = array('success' => false, 'msg' => $this->get('translator')->trans('error_exist_in_the_form'), 'errors' => $errors); 

     } 
     $jsonResponse = new JsonResponse($response); 
     return $jsonResponse; 

    } 


}//end function