Symfony - 表单构建器:提交后,ChoiceType始终为NULL

时间:2017-08-23 10:31:19

标签: php forms symfony doctrine-orm twig

我使用symfony并且我有一个带有ChoiceType的表单,选项来自其他实体的字段中的数组

FormType

public function buildForm(FormBuilderInterface $builder, array $options)
{
       $builder->add('paq', ChoiceType::class, array(
                 'choices' => $options['data_array'],
             ));
}

枝条

 <form action="{{ path('ligne_panier_create', { 'id': opProd.produit.id }) }}" method="post" {{ form_enctype(form) }} >
      {{form_start(form)}}
            <div class="form-group">
                 <h5>Choisir le type de paquetage</h5>
                  {{form_widget(form.paq, { 'attr': {'class': 'form-control subject'} }) }}<br>
         </div>
             <p class="text-center">
              <button type="submit" id="_submit" name="_submit" value=""  class="btn btn-primary" ><i class="fa fa-sign-in"></i>Ajouter </button>
              </p>
          {{form_end(form)}}
         </form>

控制器

 public function createAction(Request $request, $id)
{   

  $em=$this->getDoctrine()->getManager();

  $Lpanier = new LignePanier();
  $produit = $em->getRepository('CentralBundle:Produit')->find($id);
  $opProd = $em->getRepository('CentralBundle:OperationProduit')->find($id);
  $data_array = $opProd->getPaquetage();

    $form = $this->createForm('Central\CentralBundle\Form\LignePanierType', $Lpanier, array('data_array'=>$data_array));
    $form->handleRequest($request);
    $paq= $form['paq']->getData(); // always null !!
    $qte= $form['qte']->getData(); // work fine
     $Lpanier->setPrixTotProd($qte*$produit->getPrixVenteTTC());


        $em->persist($Lpanier);
        $em->flush($Lpanier);

    return $this->render('CentralBundle:Default:commitSuccess.html.twig');

}

列表选择显示完美,但提交此字段的值后总是在数据库中获取NULL的问题。

我在表单中有其他输入,并且提交完美!

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

在您的模板中,您有opProd {&#39; id&#39;:opProd.produit.id}对象,但在您的渲染方法中,您不需要设置此变量。