symfony很多很多orm控制器

时间:2015-06-09 18:26:06

标签: symfony orm doctrine-orm

我有多对多的关系,这是我的表

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

,我将如何在您添加目标网页的控制器部分执行此操作

1 个答案:

答案 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作为联合主键。