doushang9172 2016-12-28 10:50
浏览 27
已采纳

表单构建器中的过滤器集合[symfony2]

I have a table named Images that contains a list of logos. I would like to retrieve only logos of airlines companies.

I have this error:

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              |
+---+----------------------------+-------------+-----------------+
  • 写回答

1条回答 默认 最新

  • dtbl1231 2016-12-28 11:07
    关注

    You need to bind parameter using setParameter() function

    setParameter("mode", "AIRPLANE")
    

    Code

    ->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');
        },))
    

    You've declared a binding called :mode but you never actually bind anything to it.

    Read more about binding parameters in doctrine

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?