0
onetomany 조인 테이블 [pages]
교리 2
id | page_id | language_id | title |
1 1 1 LANG1
2 1 2 LANG2
이
id | parent | lft | rgh | level | page_id
1 0 1 2 0 1
처럼 보이는 테이블이
, [menu]
그래서이 두 테이블을 doctrine과 매핑하고 싶습니다. 지금까지
/**
* @ORM\ManyToOne(targetEntity="Entity\Menu", inversedBy="pages")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="page_id", referencedColumnName="page_id")
* })
**/
private $page_id;
이제 모든 페이지가
모든 $ 페이지
이라고 메뉴에있는 ArrayCollection에 저장되어 메뉴 엔티티/**
* @ORM\OneToMany(targetEntity="Entity\Page", mappedBy="page_id", fetch="LAZY")
**/
private $pages;
과 페이지 엔티티에
입니다 않았다 잘 때 작동합니다.
$repo = $em->getRepository('Entity\Menu');
$node = $repo->findOneById(1);
//this returns $pages var
$page = $node->getPages()->toArray();
var_dump($page);
내가 선택한 노드와 관련된 모든 페이지가 있음을 알 수 있지만, 내 목표는 관계로 뭔가를 가지고 있습니다. OneToOne 주어진 language_id로 노드와 관련된 페이지를 하나만 갖고 싶습니다. 그것을하기 위해. 나는 page 엔티티에서 where_clause를 language_id에 부여하는 방법이 있는지 궁금 해서요. 그러나 누군가 내게 도움이 될 수 있다면 성공하지 못한다. 미리 감사드립니다!