表单生成器中的过滤器集合 [symfony2]
filter collection in form builder [symfony2]
我有一个名为 table 的图像,其中包含徽标列表。我只想检索航空公司的徽标。
我有这个错误:
An exception has been thrown during the rendering of a template
("Invalid parameter number: number of bound variables does not match
number of tokens")
->add('logo', 'genemu_jqueryselect2_entity', array(
'class' => 'FLYBookingsBundle:Images',
'property' => 'alt',
'placeholder' => 'Choose your company',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.transport_mode = :AIRPLANE')
->groupBy('u.id')
->orderBy('u.alt', 'ASC');
},))
+---+----------------------------+-------------+-----------------+
|id | path | alt |tranport_mode |
+---+----------------------------+-------------+-----------------+
| 1 | /symfony/web/etihad.jpg | etihad |AIRPLANE |
| 2 | /symfony/web/singapore.jpg | singapore |AIRPLANE |
| 3 | /symfony/web/InterCape.jpg | InterCape |BUS |
+---+----------------------------+-------------+-----------------+
您需要使用setParameter()
函数绑定参数
setParameter("mode", "AIRPLANE")
代码
->add('logo', 'genemu_jqueryselect2_entity', array(
'class' => 'FLYBookingsBundle:Images',
'property' => 'alt',
'placeholder' => 'Choose your company',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.transport_mode = :mode')
->setParameter("mode", "AIRPLANE")
->groupBy('u.id')
->orderBy('u.alt', 'ASC');
},))
您已经声明了一个名为 :mode
的绑定,但实际上您从未将任何内容绑定到它。
我有一个名为 table 的图像,其中包含徽标列表。我只想检索航空公司的徽标。
我有这个错误:
An exception has been thrown during the rendering of a template ("Invalid parameter number: number of bound variables does not match number of tokens")
->add('logo', 'genemu_jqueryselect2_entity', array(
'class' => 'FLYBookingsBundle:Images',
'property' => 'alt',
'placeholder' => 'Choose your company',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.transport_mode = :AIRPLANE')
->groupBy('u.id')
->orderBy('u.alt', 'ASC');
},))
+---+----------------------------+-------------+-----------------+
|id | path | alt |tranport_mode |
+---+----------------------------+-------------+-----------------+
| 1 | /symfony/web/etihad.jpg | etihad |AIRPLANE |
| 2 | /symfony/web/singapore.jpg | singapore |AIRPLANE |
| 3 | /symfony/web/InterCape.jpg | InterCape |BUS |
+---+----------------------------+-------------+-----------------+
您需要使用setParameter()
函数绑定参数
setParameter("mode", "AIRPLANE")
代码
->add('logo', 'genemu_jqueryselect2_entity', array(
'class' => 'FLYBookingsBundle:Images',
'property' => 'alt',
'placeholder' => 'Choose your company',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.transport_mode = :mode')
->setParameter("mode", "AIRPLANE")
->groupBy('u.id')
->orderBy('u.alt', 'ASC');
},))
您已经声明了一个名为 :mode
的绑定,但实际上您从未将任何内容绑定到它。