我想知道如何在 formBuilder 中使用queryBuilder表达式。
formBuilder中查询生成器的一般用法是:
parallel -j 8 ...
现在,我想在parallel --dry-run ...
语句中使用$builder->add('client', EntityType::class, array(
'class'=>Entity::class,
'query_builder'=>function(EntityRepository $er) {
return $er->createQueryBuilder("e")
->where("e.active=1");
},
));
。
问题是,与实体存储库不同,->expr()->in()
不起作用。
我该怎么做才能在where
语句中访问$er->expr
?
答案 0 :(得分:2)
您可以访问访问EntityManager的表达式构建器,然后获取表达式构建器,例如:
$builder->add('client', EntityType::class, array(
'class'=>Entity::class,
'query_builder'=>function(EntityRepository $er) {
$expr = $er->getEntityManager()->getExpressionBuilder();
// ..
},
));
希望获得帮助
答案 1 :(得分:1)
function (EntityRepository $repo) {
$qb = $repo->createQueryBuilder('e');
$qb
->andWhere($qb->expr()->in(...))
;
return $qb;
}