Symfony2 - Sonata Admin datagrid错误没有结果

时间:2015-09-28 09:22:47

标签: symfony datagrid sonata-admin

我在Symfony2上的Sonata Admin遇到了一些麻烦,我有一个包含许多过滤器的用户列表,但其中一个使用'doctrine_orm_callback'

            'callback' => function (QueryBuilder $queryBuilder, $alias, $field, $value) {
                if($value['value'] === null)
                    return;

                    $queryBuilder->leftJoin($alias.'.ad', 'a');
                    $queryBuilder->groupBy('a.id');
                    $queryBuilder->orderBy('a.id', $value['value']);
                    $queryBuilder->setMaxResults(1);

                return;
            },

当我没有结果时,我有这个例外'虽然预计至少有一行,但没有找到查询结果。'

怎么能告诉Sonata一个函数'getOneOrNullResult'呢?

1 个答案:

答案 0 :(得分:0)

好吧,我真的很脏,但确实有效。

'callback' => function (QueryBuilder $queryBuilder, $alias, $field, $value) {
                if($value['value'] === null)
                    return;

                    $qb = clone $queryBuilder;
                    $results = $qb
                        ->setMaxResults(1)
                        ->getQuery()
                        ->getResult()
                    ;

                    if(count($results) > 0) {
                        $queryBuilder->leftJoin($alias.'.ad', 'a');
                        $queryBuilder->groupBy('a.id');
                        $queryBuilder->orderBy('a.id', $value['value']);
                        $queryBuilder->setMaxResults(1);
                    }

                return;
            },