我想在Genemy FormByndle中使用以下代码,以便在表单中使用自动填充功能:
$builder->add('users', 'entity', array(
'class' => 'AcmeHelloBundle:User',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
));
我试过了:
$builder
->add('user', 'genemu_jqueryautocomplete_entity', array(
'class' => 'AcmeHelloBundle:User',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.username', 'ASC');
},
))
但是query_builder不是genemu_jqueryautocomplete_entity中的参数。
有没有办法扩展呢?
答案 0 :(得分:1)
您可以获取查询构建器结果并在 genemu_jqueryautocomplete
中调用路径这是一些例子:
$builder ->add('users','genemu_jqueryautocomplete_text', array(
'route_name' => 'retrieve_users_name',
));
我有retributive_users_name
路线的动作:
`
/**
* @Route("/retrieve-users-name", name="retrieve_users_name")
*/
public function retrieve_users_nameAction(Request $request)
{
$value = $request->get('term');
//retriving users
$users = $this->getDoctrine()->getRepository('XYBundle:User')
->findByValue($value);
// convert the result to array
$search = array();
foreach ($users as $user) {
$search[$user->getId()] = $user->getName();
}
$response = new Response();
$response->headers->set('Content-Type', 'application/json');
$response->setContent(json_encode($search));
return $response;
}
并在UserRepository中的getByValue函数中编写querybuilder。