一对多不坚持

时间:2019-08-31 16:25:41

标签: symfony4

用户可以在此项目中创建项目,其中有很多人员和很多人。 Chapitre可以有很多人员,而多个chapitre中的人员也可以。而且我有一个添加用户之前添加人员的表单。但是不能持久保存在数据库中

在实体Chapitre中,我创建了一个可变人物OneToMany,所以我不知道为什么它不起作用

Chapitre实体

 /**
 * @ORM\OneToMany(targetEntity="App\Entity\Personnages", 
 mappedBy="chapitre")
 */
private $personnages;

Chapitre控制器

  /**
 * @Route("/addChapitre/projet/{idProjet}", name="chapitre_new", methods={"GET","POST"})
 * @Entity("projet", expr="repository.find(idProjet)")
 */
public function new(Request $request, Projet $projet): Response
{
    $idProjet = $projet->getId();
    $chapitre = new Chapitre();
    $chapitre->setProjet($projet);
    $form = $this->createForm(ChapitreType::class, $chapitre);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($chapitre);
        $entityManager->flush();

        return $this->redirectToRoute('projet_show', [
            'id' => $idProjet,
            'projet' =>$projet
        ]);
    }

    return $this->render('chapitre/new.html.twig', [
        'chapitre' => $chapitre,
        'form' => $form->createView(),
        'projet' => $projet,
    ]);
}

这种形式很棒,我可以选择人员,但是提交时不会添加到数据库中。而且在我的bdd中,我没有现场工作人员。我的学说纲领很好。

1 个答案:

答案 0 :(得分:0)

没关系,我发现了问题,我在ManyToMany中更改了ManyToOne,没关系,beaucoup鬃毛chapitre可以有很多人,其他方向也一样。