can anyone tell me why this code does not work :
$sort = 'u.username'; //test
$dql = 'SELECT u, p FROM GPAuthBundle:User u
JOIN u.profile p
WHERE ( u.username LIKE :username )
AND ( u.username LIKE :search OR p.name LIKE :search )
ORDER BY :sort ASC';
$parameters = array(
'username' => '%'.$request->query->get('username').'%',
'search' => '%'.$request->query->get('search').'%',
'sort' => $sort
);
$query = $manager->createQuery($dql)->setParameters($parameters);
The error :
[Semantical Error] line 0, col 170 near ':sort ASC': Error: ':sort' is not defined.
You can't use in ORDER because setParameters()
puts quotes : ORDER BY "myvalue" ASC
and you want ORDER BY myvalue ASC
Use PHP var, example :
ORDER BY ' . $sort . ' ASC