表单构建器中的过滤器集合

表单构建器中的过滤器集合

我有一个名为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/

10-13 09:29