Symfony 2 Validation Form -
Symfony 2 Validation Form -
i new , need help.
i have problem when seek validate form.
below different files:
amiattrbtype.php
<?php namespace site\testbundle\form; utilize symfony\component\form\abstracttype; utilize symfony\component\form\formbuilderinterface; utilize symfony\component\optionsresolver\optionsresolverinterface; class amiattrbtype extends abstracttype { /** * @param formbuilderinterface $builder * @param array $options */ public function buildform(formbuilderinterface $builder, array $options) { $builder ->add('email','text', array( 'required' => true, 'attr' => array( 'placeholder' => 'adresse mail' ))) ->add('produitsattrb','collection', array( 'type' => new produitattrbtype() )); } /** * @param optionsresolverinterface $resolver */ public function setdefaultoptions(optionsresolverinterface $resolver) { $resolver->setdefaults(array( 'data_class' => 'site\testbundle\entity\ami' )); } /** * @return string */ public function getname() { homecoming 'site_testbundle_amiattrb'; } }
produitattrbtype.php
<?php namespace site\testbundle\form; utilize symfony\component\form\abstracttype; utilize symfony\component\form\formbuilderinterface; utilize symfony\component\optionsresolver\optionsresolverinterface; class produitattrbtype extends abstracttype { /** * @param formbuilderinterface $builder * @param array $options */ public function buildform(formbuilderinterface $builder, array $options) { $builder ->add('nom', 'hidden') ->add('qte','integer', array( 'required' => true )); } /** * @param optionsresolverinterface $resolver */ public function setdefaultoptions(optionsresolverinterface $resolver) { $resolver->setdefaults(array( 'data_class' => 'site\testbundle\entity\produitattrb' )); } /** * @return string */ public function getname() { homecoming 'site_testbundle_produitattrb'; } }
controller.php
public function attrbaction(event $commande) { $ami = new ami; foreach($commande->getproduits() $produit) { $ami->addproduitsattrb(new produitattrb($produit->getnom(),0)); } $form = $this->createform(new amiattrbtype(),$ami); $request = $this->get('request'); if( $this->get('request')->getmethod() == 'post' ) { $form->bind($request); if ($form->isvalid()) { $commande->addami($ami); $em = $this->getdoctrine()->getmanager(); $em->merge($commande); $em->flush(); homecoming $this->render('sitetestbundle:test:attrb.html.twig', array('commande' =>$commande, 'form' => $form->createview())); } } homecoming $this->render('sitetestbundle:test:attrb.html.twig', array('commande' =>$commande, 'form' => $form->createview())); }
attrb.html.twig:
<tr> <td class="attrb-new"> <div class="row"> <div class="col-xs-12"> {{ form_widget(form.email) }} </div> </div> </td> {% produit in form.produitsattrb %} <td class="attrb-newqte"> {{ form_widget(produit.qte) }} </td> {% endfor %} {{ form_rest(form) }} </tr>
i have 2 case: if, in controller, utilize bind($request), have 2 errors:
- email empty (email has been entered) - token invalid (token exist in source code)
i don't understand why have errors.
if utilize handlerequest($request)
, nil happening.
my symfony version higher 2.3 bindhas worked.
when remove part in twig code , have bind($request)
:
{% produit in form.produitsattrb %} <td class="attrb-newqte"> {{ form_widget(produit.qte) }} </td> {% endfor %}
it's works.
please can help me.
thank in advance.
regards
you should pass request object action instead of getting service. this:
public function testaction(request $request, $myotherargs) { .... $form->handlerequest($request); ... }
also, if want see what's causing error, can var_dump form after calling handlerequest
:
var_dump($form->geterrors(true));
forms validation symfony2 bind
Comments
Post a Comment