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