我在 Symfony2 项目中使用 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);
但没有帮助。
阅读查询提示,但没有使用它的查询。