我用这样的实体类型构建一个表单:
$form = $this->createFormBuilder()
->add('users', 'entity', array(
'class' => 'UserBundle:Users',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.name', 'ASC');
},)
)
->getForm();
Run Code Online (Sandbox Code Playgroud)
现在我想修改此表单,仅显示不同的用户.我试试这个:
->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();
},)
)
Run Code Online (Sandbox Code Playgroud)
但是Symfony给了我一个例外.我的问题是如何在实体字段类型中使用自定义查询?
我不明白你的意思是什么意思.我的代码看起来像:
库:
public function getDistinctUsers()
{
return $this->getEntityManager()->createQuery('SELECT DISTINCT u.name FROM UserBundle:Users u ORDER BY u.name DESC')->getResult();
}
Run Code Online (Sandbox Code Playgroud)
控制器:
->add('users', 'entity', array(
'class' => 'UserBundle:Users',
'query_builder' => function(EntityRepository $er) {
return $er->getDistinctUsers();
},) …Run Code Online (Sandbox Code Playgroud)