Doctrine - insert multiple rows with just one save()

前端 未结 5 1254
死守一世寂寞
死守一世寂寞 2020-12-08 21:03

How do I insert multiple rows into table calling save() method once in Doctrine?

5条回答
  •  醉酒成梦
    2020-12-08 21:49

    1)Declare all the tables. 2)Create the form. 3)Send to multiple tables. 4)Persist data.

    use AppBundle\Entity\site;
    use AppBundle\Entity\nba;
    

    1)Declare all the tables.

     $site = new site;
     $nba = new nba;
    

    2)Create form

    $form = $this->createFormBuilder($site)
    
    
    
    
        ->add('site_id', IntegerType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px')))
        ->add('category', ChoiceType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'), 'choices' => $output))
        ->add('team', ChoiceType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'), 'choices' => $nbat))
        ->add('save', SubmitType::class, array('label' => "Create",'attr' => array('class' => 'btn btn-success', 'style' => 'margin-bottom:15px')))
        ->getForm();
        $form->handleRequest($request);
        if($form->isSubmitted() && $form->isValid())
    

    3)Insert into multiple tables.

        {
    
            $site_id = $form['site_id']->getData();
            $category = $form['category']->getData();
            $team = $form['team']->getData();
    
    
    
    
            $site->setSiteId($site_id);
            $site->setCategory($category);
            $nba->setWinner($team);
    

    4)Persist data

                $em = $this->getDoctrine()->getManager();
                $em->persist($site);
                $em->persist($nba);
                $em->flush();
    

提交回复
热议问题