Doctrine orm sonataAdminBundle上的查询生成器被忽略

Doctrine orm sonataAdminBundle上的查询生成器被忽略,doctrine-orm,sonata-admin,Doctrine Orm,Sonata Admin,我正在使用sonataAdminBundle和symfony2 我做了这个剧本。 它过滤搜索框中的候选项 但是这个查询生成器被忽略 还有什么要检查的吗 public function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper ->add('user',null, array( 'query_builde

我正在使用sonataAdminBundle和symfony2

我做了这个剧本。 它过滤搜索框中的候选项

但是这个查询生成器被忽略

还有什么要检查的吗

public function configureDatagridFilters(DatagridMapper $datagridMapper)
{

    $datagridMapper
        ->add('user',null,
            array(
                'query_builder' =>
                function (\Doctrine\ORM\EntityRepository $rep) {
                     return $rep->
                     createQueryBuilder('s')
                     ->where('s.id','1');
             })       

添加

我正在使用这个脚本进行新的输入,它可以工作

    $formMapper
        ->with('General')
            ->add('teacher',
                null,
                array(
                    'query_builder' =>
                     function (\Doctrine\ORM\EntityRepository $rep) {
                     return $rep->
                    createQueryBuilder('s')
                    ->join('s.groups', 'g') // Assuming the association on your user entity is 'groups'
                    ->where('g.name = :group')->setParameter('group','TeacherGroup');
                    })

            ) 
但是对于datagridMapper,它不起作用

    $datagridMapper
        ->add('teacher',null,
            array(
               'query_builder' =>
                function (\Doctrine\ORM\EntityRepository $rep) {
                return $rep->
                createQueryBuilder('s')
                ->join('s.groups', 'g') // Assuming the association on your user entity is 'groups'
                ->where('g.name = :group')
                ->setParameter('group','TeacherGroup');
             }))

查看有关此的文档。您的语法错误。
我通过以下方式实现了这一点

 $datagridMapper
    ->add('user',null,
        array(
            'field_type' => 'entity',
            'field_options => array(
              'query_builder' => function (\Doctrine\ORM\EntityRepository $rep) {
                 return $rep->
                 createQueryBuilder('s')
                 ->where('s.id','1');
              }
            )
         });       

您应该在第四个参数中使用“query_builder”,类似于:

$datagridMapper
    ->add('teacher',null,null,
        array(
           'query_builder' =>
            function (\Doctrine\ORM\EntityRepository $rep) {
            return $rep->
            createQueryBuilder('s')
            ->join('s.groups', 'g') // Assuming the association on your user entity is 'groups'
            ->where('g.name = :group')
            ->setParameter('group','TeacherGroup');
         }))

谢谢,我已经根据这个指南编写了一些代码并试用了一些PETTERN,但是没有用。请看我的附加文章??