1

我有一个包含如下实体字段的表单

$builder->add('rating', 'entity', array(
         'class' => 'MyBundle:Rating',
         'query_builder' => function(EntityRepository $er) {
                return $er->createQueryBuilder('u')
                    ->orderBy('u.id', 'ASC');
            },      

在这种形式中,我可以使用查询构建器来自定义评级实体的选择。但是由于我有一个像下面这样的 Rating 实体的自定义存储库,我想使用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();
    }

最好的

4

1 回答 1

0

好的,一个解决方案是将我的表单定义为服务,然后注入实体管理器。然后我可以使用我的存储库。

http://symfony.com/doc/current/book/forms.html#defining-your-forms-as-services

于 2014-10-30T03:56:06.897 回答