php - 实体字段类型自定义查询参数

标签 php symfony doctrine

我想在 Symfony 2 中构建一个 Entity 字段类型,并将一个参数传递给查询构建器以获取相关对象的过滤器列表:

$formMapper
            ->add('article_subcategories', 'entity',
                    array(
                         'label' => 'Podkategorie',
                         'multiple' => true,
                         'expanded' => true,
                         'read_only' => true,
                         'class' => 'FachowoArticleBundle:ArticleSubcategory',
                         'query_builder' => function (EntityRepository $er)
                         {
                             return $er
                                     ->createQueryBuilder('sc')
                                      ->where('sc.article_category = :id')
                                      ->orderBy('sc.name', 'ASC')
                                      ->setParameter('id', $id);
                         }
                    ));

我如何将 $id 传递给 formMapper 中的这个函数?

最佳答案

您可以使用 PHP 5.3 的闭包。大多数带有闭包的语言会自动执行此操作,但 PHP 要求您明确指定列表。

'query_builder' => function (EntityRepository $er) use ($id)
   {
      return $er
        ->createQueryBuilder('sc')
        ->where('sc.article_category = :id')
        ->orderBy('sc.name', 'ASC')
        ->setParameter('id', $id);
    }

关于php - 实体字段类型自定义查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9034042/

相关文章:

php - PHP 中的 EPUB 阅读器/查看器

php - 为我的属性表创建照片模型

php - 如何在 MySQL 数据库中插入具有多个值的输入?

javascript - 如何在页面加载时隐藏另一个 php 文件中的 div

Symfony2 - block 类型 sonata.user.block.menu 不存在

php - Doctrine 查询生成器 : ManyToOne Relationship where more than one subEntity must match

PHP mysqli 加载缓慢。

mysql - 如何解决 Doctrine 中出现的异常(exception)(Symfony 4)?

mysql - 如何在 Symfony 3 中使用 Doctrine 在类型 "json_array"的列上添加复合索引?

symfony - 同一实体如何实现 Doctrine 中的父子关系?