У меня есть построитель запросов для моего поля формы, поэтому он должен возвращать экземпляр построителя запросов.В настоящее время некоторые результаты являются дубликатами друг друга с небольшими отличиями.Я хочу отображать только уникальные результаты на основе определенного столбца fileName/qf.fileName
.
В настоящее время у меня есть:
'query_builder' => function (EntityRepository $repository) use ($options) {
return $repository
->createQueryBuilder('qf')
->join('qf.quote', 'q', Expr\Join::WITH, 'q.client = :client')
->setParameter('client', '3');
},
, и я хочу, чтобы результаты были уникальными на основе столбца qf.fileName
.Я попытался использовать distinct
, но я считаю, что вам нужно выбрать определенный столбец, который не работает для меня, потому что я хочу вернуть всю сущность.
Я также пробовал группировать по, но я получаю следующую ошибку:
Предложение GROUP BY и содержит неагрегированный столбец
Любая помощь будет большой,спасибо.
Игнорировать жестко запрограммированный клиент!
РЕДАКТИРОВАТЬ:
Таким образом, свойство не существует насущность, она используется для представления существующих данных в форме, поэтому мы используем атрибут by_reference
.
Данные, представленные внешнему интерфейсу, генерируются из построителя запросов.
->add('example', EntityType::class, [
'class' => Example::class,
'multiple' => true,
'required' => false,
'by_reference' => false,
'expanded' => true,
'query_builder' => function (EntityRepository $repository) use ($client) {
return $repository
->createQueryBuilder('ex')
->join('ex.quote', 'e', Expr\Join::WITH, 'e.client = :client')
->setParameter('client', $client->getId());
},
]);