我想在 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/