从其他实体控制器

时间:2017-04-29 16:25:47

标签: symfony doctrine entitymanager

我有一个实体“优惠券”的表格。在这种形式中,我有一个实体“注释”的表单。由于我使用实体“优惠券”控制器来访问实体“注释”的形式,我在此控制器(“优惠券”控制器)中处理“注释”的提交。但是当我处理提交并尝试持久化并刷新数据时,它们都没有存储在我的Entity“Annotation”表中。我认为这是因为学说使用了“优惠券”的实体管理者。

我希望我足够清楚。你能帮帮我吗?

public function editAction(Request $request, Coupon $coupon)
{
    $modified = new \DateTime('now');
    $this->denyAccessUnlessGranted('ROLE_USER', null, 'Vous n\'avez pas les droits nécessaires!');
    // Ici on bloque l'accès au coupon pour les autres utilisateurs
    $coupon->setAccess(0);
    $em = $this->getDoctrine()->getManager();
    $em->persist($coupon);
    $em->flush($coupon);

    // ensuite on affiche le formulaire coupon et/ou on le traite
    $editForm = $this->createForm('GestCoupons\CouponBundle\Form\CouponType', $coupon);
    if ( $editForm->get('dateAjout') != null ) {
        $editForm->get('dateMaj')->setData($modified->format('d/m/Y H:i'));
    }
    $editForm->handleRequest($request);

    //on cree le formulaire d'annotation et/ou on le traite
    $annot = new Annotation();
    $annotForm = $this->createForm('GestCoupons\AnnotationBundle\Form\AnnotationType', $annot);
    $annotForm->get('coupon')->setData($coupon->getId());
    $annotForm->get('date')->setData($modified->format('d/m/Y H:i'));
    $annotForm->handleRequest($request);

    if ($editForm->isSubmitted() && $editForm->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $coupon->setAccess(1);
        $em->persist($coupon);
        $em->flush($coupon);
        return $this->redirectToRoute('coupon_show', array('id' => $coupon->getId()));
    }

    if ($annotForm->isSubmitted() && $annotForm->isValid()) {
        $em = $this->getDoctrine()->getManager('annotation');
        $em->persist($annot);
        $em->flush($annot);
    }

感谢您的帮助。

0 个答案:

没有答案