>我有一个由实体字段组成的表单,如波纹管
$builder->add('rating', 'entity', array(
'class' => 'MyBundle:Rating',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.id', 'ASC');
},
在此表单中,我可以使用查询生成器来自定义选择评级实体。但是由于我有一个像下面这样的评级实体的自定义存储库,我想在 RatingRepository 类中使用 loadAllRoots() 方法来填充我的表单中的评级实体,而不是使用查询生成器。
class RatingRepository extends EntityRepository
{
public function loadAllRoots()
{
return $this->getEntityManager()
->createQuery('SELECT r FROM MyBundle:Rating r WHERE r.parent IS NULL')
->getResult();
}
最好
好的,解决方案是将我的表单定义为服务,然后注入实体管理器。然后我可以使用我的存储库。
http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services