我有多对多的关系,这是我的表
site
------
id
name
site_landingpage
---------------
id
site_id
landingpage_id
landingpage
----------
id
name
Page.php
-----------------------
/**
* @ORM\ManyToMany(targetEntity="Page\DefaultBundle\Entity\Site", mappedBy="landingpages")
**/
private $sites;
Site.php
/**
* @ORM\ManyToMany(targetEntity="Site\PageBundle\Entity\Page", inversedBy="sites")
* @ORM\JoinTable(name="site_landingpage")
**/
private $landingpage;
如果我添加了一个登陆页面,它应该获取当前站点并填充site_landingpage表,如果我的site_id为$ site_id
,我将如何在您添加目标网页的控制器部分执行此操作答案 0 :(得分:0)
我不确定你的实体是否有吸气剂和放大器。 setters创建,如果不是通过运行生成它们:
app/console doctrine:generate:entities PageBundle:Site
app/console doctrine:generate:entities PageBundle:Page
然后你可以简单地做一些事情:
$landingpage = new Page();
$site->addLandingpage($landingpage);
Kontroversial Keith的This blog post提供了一个从用户输入填充多对多关系实体的详细示例。
作为旁注,连接表(即site_landingpage)不需要额外的id
列(尽管不应该破坏任何内容),只需要使用site_id& landingpage_id作为联合主键。