2015-09-28 2 views
0

Я некоторые проблемы с Sonata администратора на Symfony2, я не имею список пользователей с большим количеством фильтров butone из них использовать «doctrine_orm_callback»Symfony2 - Sonata Админ ошибка DataGrid никаких результатов

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

Когда я» ve no result У меня есть это исключение «Не найдено никакого результата для запроса, хотя ожидалась хотя бы одна строка».

Как рассказать сонате функцию 'getOneOrNullResult' как?

ответ

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; 
      },