Doctrine orm sonataAdminBundle上的查询生成器被忽略
我正在使用sonataAdminBundle和symfony2 我做了这个剧本。 它过滤搜索框中的候选项 但是这个查询生成器被忽略 还有什么要检查的吗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
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,但是没有用。请看我的附加文章??