symfony 2.5 отношение многие к одному внешний ключ null - PullRequest
0 голосов
/ 19 ноября 2018

у меня есть две сущности produit entity и avis с отношением "многие к одному", у одного продукта может быть много avis, но когда я пытаюсь сохранить комментарий, поле produit_id остается пустым. Я хорошо настроил отношения, я думаю, что у меня проблема в контроллере.

это мой контроллер добавить действие avis:

public function addAction(Request $request){
    $em =$this->getDoctrine()->getManager();
    $produit=$em->getRepository('redeBundle:produit')->findAll();
    $avis = new avis();
    $avis->setCreatedAt(new \DateTime('now'));
    $form = $this->createForm(new avisType(), $avis);
    $form -> handleRequest($request);
    if($form->isSubmitted() && $form->isValid()){
       $avis->setProduit($produit);
        $em->persist($avis);
        $em->flush();
        return $this->redirect($this->generateUrl('produit_page'));
    }

    $formView=$form->createView();

    return $this->render('myBundle:avisAdd.html.twig',
     array('form'=>$formView));

}

это моя сущность авис

class avis {

/**
 * @var produit
 *
 * @Assert\valid()
 *
 * @ORM\ManyToOne(targetEntity="redemaroc\redeBundle\Entity\produit", 
cascade={"persist"})
 * @ORM\JoinColumn(nullable=false)
 *
 *
 */
private $produit;

 ...
 }

Может ли кто-нибудь помочь мне решить это?

1 Ответ

0 голосов
/ 21 ноября 2018

Это решаемо с помощью одного из этих решений

  1. в методе setProduit вашего класса Avis добавьте следующую инструкцию: produit-> addAvis ($ this); .
  2. Убедитесь, что каждый раз, когда вы вызываете $ avis-> setProduit ($ produit); , вы должны добавить $ produit-> addAvis ($ avis); перед сбросом данных.

Я предполагаю, что addAvis - это метод, используемый для добавления данного avis в ваш продукт.

...