Използвам doctrine2 в рамката на symfony2. И искам да избера едно произволно поле. Не искам да използвам родната заявка или да получавам случайни с PHP.
Опитах се да направя това според
https://gist.github.com/Ocramius/919465
Разширената функция, свързана в config.yml
orm:
...
entity_managers:
default:
...
dql:
numeric_functions:
rand: MyProject\MyBundle\DQL\Rand
Опитвам се да извикам заявката в контролера
$product= $em->createQueryBuilder('p')
->select('w')
->from('MyBundle:Product', 'p')
// ->orderBy('RAND ()') // I tried so
->addSelect('RAND() as HIDDEN rand') // and so
->orderBy('rand')
->getQuery()
->getSingleResult();
и аз също опитах
$product = $em->createQuery('SELECT p FROM MyBundle:Product p ORDER BY RAND()')
->setMaxResults(1)
->getSingleResult();
Получавам грешката:
Error: Expected end of string, got '('
Имайте предвид, че "ASC" следва след "RAND()" в заявката. Опитах се да извикам orderBy('RAND()', ''), но неуспешно...
ORDER BY RAND()
предупреждения - person Touki   schedule 28.02.2014