Symfony,在一种形式中嵌入5或6个没有关系的实体

时间:2016-03-02 07:24:07

标签: php symfony-forms symfony-2.1

在我的情况下,我有30个实体,它们之间没有关系,每个实体都有两列。我希望在一种形式中有6或7个实体,但我不知道最好的方法是什么?这是我的代码......

这是我的控制器:

public function general1Action(Request $request)
{
    $example1 = new Example1();
    $example2 = new Example2();
    $example3 = new Example3();
    $example4 = new Example4();


    $formexample1 = $this->createForm('...Bundle\Form\Example1Type', $example1);
    $formexample2 = $this->createForm('...Bundle\Form\ Example2Type', $example2);
    $formexample3 = $this->createForm('...Bundle\Form\ Example3Type', $example3);
    $fprmexample4 = $this->createForm('...Bundle\Form\Example4Type', $example4);


    $example1->handleRequest($request);
    $example2->handleRequest($request);
    $example3->handleRequest($request);
    $example4->handleRequest($request);


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


    if ($example1->isSubmitted() && $example1->isValid()) {

            /**
            * To generate the value example1 first column(e1fc) and second       column(e1sc)
            */

            $prefix=$this->container->getParameter('prefix');         
            $e1fcCle=$em->getRepository("...Bundle:Example1")->genereCle('Example1',$prefix);
            $example1->sete1fc($e1fcCle);


            /**
            * To generate the value example1 second column(e1sc)
            */
            $example1->sete1sc("e1sc".($e1fcCle));

            /**
            * to check, the fields are not empty
            */ 
            if(($formexample2["e2sc"]->getData())!=""){
                $example2->sete1fc($e1fcCle);
                $em->persist($example2);
            } 
            if(($formexample3["e3sc"]->getData())!=""){
                $example3->sete1fc($e1fcCle);
                $em->persist($example3);
            }
            if(($formexample4["e4sc"]->getData())!=""){
                 $example4-> sete1fc($e1fcCle);                 
                $em->persist($example4);
            }

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


                return $this->forward('...Bundle:General...: general2',
                        array('E1FC' => $e1fcCle));
    }


    return $this->render('.../general1.html.twig', array(
        'example1' => $example1,
        'formExample1' => $formexample1->createView(),
        'formExample2' => $formexample2->createView(),
        'formExample3' => $formexample3->createView(),
        'formExample4' => $formexample4->createView(),
    ));

}` 

这是我的general1.html.twig:

{% extends 'base.html.twig' %}
{% block body %}
{{ form_start(formExample1) }}
{{ form_row(formExample2.e2sc) }}
{{ form_row(formExample3.e3sc) }}
{{ form_row(formExample4.e4sc) }}
<input type="submit" value="Next" />
{{ form_widget(formExample1._token) }}  
{{ form_end(formExample1, {"render_rest":false}) }}
<ul>
    <li>
        <a href="{{ path('..._index') }}">Back to the list</a>
    </li>
</ul>
{% endblock %}`,

我有另一个问题:当我尝试将isValid()用于此类

的其他形式时
if(($formexample2["e2sc"]->getData())!=""&& $example2->isValid())

我有这个错误:致命错误:调用成员函数get ...()on null

0 个答案:

没有答案