gab*_*ahn 2 php orm symfony doctrine-orm
我在控制器中有两个表单,第一个表单工作正常,但是我的第二个表单无法按预期工作。
我的控制器:
// Second Form
$formTwo = $this->get('form.factory')->createNamedBuilder('form2name', new CarType(), null, array())
->getForm();
if('POST' === $request->getMethod()) {
if ($request->request->has('form1name')) {
// handle the first form
}
if ($request->request->has('form2name')) {
// handle the second form
// get the id value of the selected value.
}
}
Run Code Online (Sandbox Code Playgroud)
我的车型:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('makename','entity',array(
'class'=> 'MyTestBundle:Car\CarModel',
'query_builder'=>function(EntityRepository $er){
return $query = $er->createQueryBuilder('s')
->select('s.makename')
->distinct()
->orderBy('s.makename','ASC');
}
));
$builder->add('search','submit',array());
}
Run Code Online (Sandbox Code Playgroud)
错误:“给出了类型为“Doctrine\ORM\QueryBuilder”、“Doctrine\ORM\Query”的预期参数”
交响乐版本:2.7
在query_builder(用于构建表单)中,您必须返回一个QueryBuilder对象。目前,您返回一个Query对象。
只需删除getQuery()
$builder->add('makename','entity',array(
'class'=> 'MyTestBundle:Car\CarModel',
'query_builder'=>function(EntityRepository $er){
return $er->createQueryBuilder('s')
->select('s.makename')
->distinct()
//->getQuery(); remove this line
}
Run Code Online (Sandbox Code Playgroud)