Пока я думаю, что у доктрины нет способа выбрать случайный ряд. Поэтому я думаю, что у меня есть запрос для получения количества строк
// pseudo code
$count = SELECT COUNT(i) FROM Item i WHERE ...
Затем есть настоящий запрос для получения элемента с использованием случайного смещения из PHP, помещенного в setFirstResult
$item = (SELECT i FROM Item WHERE ...)->setMaxResults(1)->setFirstResult(rand(0, $count))->getSingleResult()
Вопрос в том, мой rand()
я начинаю с 0 или 1? Потом с конца? $count
или $count-1
?