Я создал форму-форму сущности Symfony и использовал QueryBuilder для получения сущностей.
Мой Querybuilder выглядит так:
$qb = $this
->em
->getRepository('Namespace\Entity\Domain\Nic')
->createQueryBuilder('domainNic')
->join('domainNic.article', 'article')
->andWhere('article.category = :domainCategory')
->setParameter('domainCategory', Article::CATEGORY_DOMAINS)
->orderBy('article.title');
Мое определение типа формы ниже выглядит так:
$builder->add(
'withTld',
'bootstrap_collection',
array(
'allow_add' => true,
'allow_delete' => true,
'add_button_text' => 'addtext',
'delete_button_text' => 'deletetext',
'type' => 'entity',
'sub_widget_col' => 5,
'label' => '***',
'options' => array(
'class' => 'Namespace\Entity\Domain\NIC',
'query_builder' => $qb,
'property' => 'title'
)
)
);
Результат выглядит точно так, как ожидалось, но для каждой найденной записи Symfony не использует данные из QueryBuilder. Вместо этого Symfony снова выбирает заголовок для каждой записи.
Кто-нибудь знает решение? Я хочу, чтобы Symfony использовал данные из QueryBuilder.
Вам понадобится дополнительный select
строка в вашем построителе запросов:
$qb = $this
->em
->getRepository('Namespace\Entity\Domain\Nic')
->createQueryBuilder('domainNic')
->addSelect('article') // <---------------- THIS
->join('domainNic.article', 'article')
->andWhere('article.category = :domainCategory')
->setParameter('domainCategory', Article::CATEGORY_DOMAINS)
->orderBy('article.title');
Других решений пока нет …