2013-09-26 3 views
0

Я использую sonataAdminBundle и Symfony2query_builder на sonataAdminBundle игнорируется

Я сделал этот сценарий. фильтрует кандидатов в поле поиска.

но этот query_builder игнорируется.

Есть ли еще какие-либо пункты для проверки?

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'); 
      })) 

ответ

0

Ознакомьтесь с документацией об этом. У вас неправильный синтаксис. http://sonata-project.org/bundles/doctrine-orm-admin/master/doc/reference/filter_field_definition.html#callback

+0

Спасибо Я сделал некоторые коды и попробовал некоторые petterns в соответствии с этим руководством, но напрасно.посмотрите мои дополнительные статьи ?? – whitebear

0

Я достиг этого следующим образом

$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'); 
       } 
      ) 
     });  
0

вы должны использовать «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'); 
     })) 
Смежные вопросы