【发布时间】:2011-12-10 11:50:02
【问题描述】:
我用这样的实体类型构建了一个表单:
$form = $this->createFormBuilder()
->add('users', 'entity', array(
'class' => 'UserBundle:Users',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.name', 'ASC');
},)
)
->getForm();
现在我想修改这个表单,只显示不同的用户。我试试这个:
->add('users', 'entity', array(
'class' => 'UserBundle:Users',
'query_builder' => function(EntityRepository $er) {
return $er->createQuery('SELECT DISTINCT u.name FROM UserBundle:Users ORDER BY u.name ASC')->getResult();
},)
)
但是 Symfony 给我抛出了一个异常。我的问题是如何在实体字段类型中使用自定义查询?
我不明白你最后一个答案的意思。我的代码如下:
存储库:
public function getDistinctUsers()
{
return $this->getEntityManager()->createQuery('SELECT DISTINCT u.name FROM UserBundle:Users u ORDER BY u.name DESC')->getResult();
}
控制器:
->add('users', 'entity', array(
'class' => 'UserBundle:Users',
'query_builder' => function(EntityRepository $er) {
return $er->getDistinctUsers();
},)
)
树枝:
<form action="{{ path('user') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
它抛出异常:在渲染模板期间抛出异常(“类型为“Doctrine\ORM\QueryBuilder”的预期参数,“给定数组”)...
【问题讨论】:
-
“我不明白你最后一个答案的意思。”完全没有意义。请将该位添加为对相关答案的评论。您还可以使用您正在谈论的答案上的共享链接,并将其链接到您的编辑。