Bonjour,

J'aimerai exécuter cette requête pour récupérer la liste des utilisateurs:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$req =
    "select *, @pv:=id as id
     from `fos_user_user`
     join
     (select @pv:=1)tmp
     where user_id=@pv";
Dans la fonction createQuery($context = 'list')

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
    public function createQuery($context = 'list')
    {
        $req =
            "select *, @pv:=id as id
            from `fos_user_user`
            join
            (select @pv:=1)tmp
            where user_id=@pv";
 
        //$em = $this->getConfigurationPool()->getContainer()->get('doctrine')->getManager();
 
        $securityContext = $this->getSecurityContext();
        $user = $securityContext->getToken()->getUser();
 
        $query = parent::createQuery($context);
        /* $query = parent::createQuery($req); */
        /* $query = $em->createQuery($req); */
        /*$query->addSelect('@pv:=id')
            ->join('(select @pv:=1)tmp', ':id')
            ->andWhere('user_id=@pv');*/
 
        return $query;
    }
Mais impossible d’exécuter la requête :

avec /* $query = parent::createQuery($req); */ : rien ne se passe.

avec /* $query = $em->createQuery($req); */ :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Catchable Fatal Error: Argument 1 passed to Sonata\AdminBundle\Datagrid\Datagrid::__construct() must implement interface Sonata\AdminBundle\Datagrid\ProxyQueryInterface
avec /*$query = parent::createQuery($context); $query->addSelect('@pv:=id') */ :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
An exception has been thrown during the rendering of a template ("[Syntax Error] line 0, col 10: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got '@'") in SonataAdminBundle:CRUD:base_list.html.twig at line 29.