我有两个实体produit-entity和avis,具有多对一关系,一个产品可以有多个avis,但当我尝试保存注释时,字段produit_id保持为null。我已经很好地配置了关系,我认为我在控制器中有问题。
这是我的控制器添加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));
}
这是我的实体avis
class avis {
/**
* @var produit
*
* @Assertvalid()
*
* @ORMManyToOne(targetEntity="redemarocredeBundleEntityproduit",
cascade={"persist"})
* @ORMJoinColumn(nullable=false)
*
*
*/
private $produit;
...
}
有人能帮我解决这个问题吗?!
它可以通过使用其中一个解决方案来解决
- 在Avis类的setProduit方法中,添加以下指令:produit->addAvis($this(
- 请确保在任何时候调用$avis->setProduit($produit(,必须添加$produit->addAvis($avis(刷新数据之前
我假设addAvis是用于将给定avis添加到产品中的方法。