我有一个名为Images的表,其中包含一个logo列表。我只想找回航空公司的商标。
我有这个错误:
在呈现模板期间引发了异常
(“无效参数编号:绑定变量的数目不匹配
代币数量“)
->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
的绑定,但实际上从未将任何内容绑定到它。Read more about binding parameters in doctrine
关于php - 表单构建器中的过滤器集合[symfony2],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41360447/