0
如果任何学说的专家,如果能帮助白衣这一点:学说2加入一对多
有一个表,[menu]
它看起来像
id | parent | lft | rgh | level | page_id
1 0 1 2 0 1
有一个表[pages]
id | page_id | language_id | title |
1 1 1 LANG1
2 1 2 LANG2
,所以我想用这个学说两个表映射什么我至今
在菜单实体
/**
* @ORM\OneToMany(targetEntity="Entity\Page", mappedBy="page_id", fetch="LAZY")
**/
private $pages;
,并在页面实体
/**
* @ORM\ManyToOne(targetEntity="Entity\Menu", inversedBy="pages")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="page_id", referencedColumnName="page_id")
* })
**/
private $page_id;
现在所有的页面都在ArrayCollection的店在菜单被称为$页面
一切工作正常,当我得到
$repo = $em->getRepository('Entity\Menu');
$node = $repo->findOneById(1);
//this returns $pages var
$page = $node->getPages()->toArray();
var_dump($page);
我可以看到有关所选节点的所有页面都在那里,但我的目标是比较有,如一些关系OneToOne我想有只与由下式给出LANGUAGE_ID节点一个页面,但我不知道该怎么去做吧。我想知道如果有一种方式让一些WHERE子句中的页的实体,但我所有的尝试都没有成功,所以如果有人能帮助将是巨大的LANGUAGE_ID。提前致谢!