1
Symfony2 프로젝트에서 Gedmo Tree를 사용하고 있습니다.Symfony2 번역 가능한 listner가있는 Gedmo 트리
$em = $this->getDoctrine()->getEntityManager();
$options = array(
'decorate' => true,
'rootOpen' => '<ul>',
'rootClose' => '</ul>',
'childOpen' => '<li>',
'childClose' => '</li>',
'nodeDecorator' => function($node) {
return '<a class="menu" href="#">'.$node['name'].'</a>';
}
);
$category = $em->getRepository('MyMainBundle:Category')->childrenHierarchy(
null, /* starting from root nodes */
false, /* load all children, not only direct */
$options
);
print_R($category);
작동하지만 문제는 필드 이름을 번역 할 수 있다는 것입니다. 카테고리 테이블에서는 NULL이고 값은 category_translations 테이블에 저장되지만 내 코드는 카테고리 테이블에서만 필드를 반환합니다.
$evm = new \Doctrine\Common\EventManager();
$translatableListener = new \Gedmo\Translatable\TranslatableListener();
$translatableListener->setTranslatableLocale('en');
$evm->addEventSubscriber($translatableListener);
변경 :와
$em = $this->getDoctrine()->getEntityManager();
:
$em = $this->getDoctrine()->getEntityManager(null,null,$evm);
하지만이 도움이되지 않았다 시도
는 listners를 추가합니다.
약 query hint을 읽되 사용하려면 쿼리가 필요하지 않습니다. 가 사용자 정의 NestedTreeRepository를 만들고 setHint 반환 쿼리에 전화 getNodesHierarchyQuery에게 메소드를 오버라이드 (override) :
덕분에, 쿼리 기능을 오버라이드 (override)에 대해 생각하지 않았다. – Narek