对象的方法" Symfony \ Component \ Form \ FormView"不存在Symfony2

时间:2016-12-27 10:59:26

标签: php symfony twig

我正在研究Symfony2。 我试图在表格中显示数据库中的一些数据,但我发现此例外

  

方法" exemplairesParPaquet" for object" Symfony \ Component \ Form \ FormView"在GPAOPontaultBundle中不存在:制作:第103行的infogeneral.html.twig

你能帮帮我吗?

我的infogeneral.html.twig

<td class='dynamique'>
    {{unDossiers.Conditionnement.exemplairesParPaquet}}
    {{ form_errors(form.Conditionnement.exemplairesParPaquet) }}
    {{ form_widget(form.Conditionnement.exemplairesParPaquet, {'attr': {'style':'width: 80px;pointer-events: none;'}}) }}
</td>

My FabricationController.php

public function modifierAction(Request $request, $id) { //Action servant à modifier les infos rentrées en base lors de l'enregistrement du formualaire dossier

    $em= $this->getDoctrine()->getManager();
    $unDossiers = $em->getRepository('GPAOPontaultBundle:Dossier')->find($id);
    $form = $this->get('form.factory')->create(new DossierType(), $unDossiers);
    if ($form->handleRequest($request)->isValid()) {
        $em->persist($unDossiers);
        $em->flush();
        return new Response ('Modification réussi');
    }

    if($unDossiers==null){
         return new Response ('Modification impossible');
    }


    return $this->render('GPAOPontaultBundle:Fabrication:infogeneral.html.twig', array(
        'form' => $form->createView(), 
        "unDossiers"=>$unDossiers
        ));
}

和我的DossierType.php

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
       ->add('TitreFaconne', new TitreFaconneType())
        ->add('numDF',  'text')
        ->add('parution',   'text')
        ->add('totalAFabriquer',    'integer')
        ->add('totalAFabriquerMSF', 'integer')
        ->add('cptCloture', 'integer')
        ->add('dateDebutLivraison', 'date', array(
                                            'widget' => 'single_text',
                                            'input' => 'datetime',
                                            'format' => 'dd/MM/yyyy',
                                            'attr' => array('class' => 'date'),
                                            ))
        ->add('dateFinLivraison', 'date', array(
                                            'widget' => 'single_text',
                                            'input' => 'datetime',
                                            'format' => 'dd/MM/yyyy',
                                            'attr' => array('class' => 'date'),
                                            ))
        ->add('dateComplet', 'date', array(
                                            'widget' => 'single_text',
                                            'input' => 'datetime',
                                            'format' => 'dd/MM/yyyy',
                                            'attr' => array('class' => 'date'),
                                            ))
        ->add('observations',   'textarea')
        ->add('Conditionnement', 'entity', array(
                                        'class'=>'GPAO\PontaultBundle\Entity\Conditionnement',
                                        'property'=>'id'))
        ->add('TypeTaquage', new TypeTaquageType())
        ->add('Societe','entity', array('class'=>'GPAO\PontaultBundle\Entity\Societe',
                                     'property' => 'nom'))
        ->add('sauvegarder',    'submit', array('attr' => array('class' => 'btn btn-primary')))
    ;
}

1 个答案:

答案 0 :(得分:0)

您尚未在表单构建器中添加元素exemplairesParPaquet。首先在表单中添加exemplairesParPaquet,就像其他元素一样,并在twig中使用它。

Twig看起来像是:

<td class='dynamique'>
    {{ form_errors(form.exemplairesParPaquet) }}
    {{ form_widget(form.exemplairesParPaquet, {'attr': {'style':'width: 80px;pointer-events: none;'}}) }}
</td>