Symfony 如何将实体数组传递到实体存储库并运行“where in”查询?
我有一组Symfony 如何将实体数组传递到实体存储库并运行“where in”查询?,symfony,doctrine,dql,php-5.6,Symfony,Doctrine,Dql,Php 5.6,我有一组计划$plans。 如何将$plan数组传递给我的成员控制器? 目前我使用: 注释中的*@param Plans | array$plan public function findMembersByPlans( $planArray) { $queryBuilder = $this->createQueryBuilder('m'); $count = $queryBuilder->select('count(m)')
计划$plans
。
如何将$plan数组传递给我的成员控制器?
目前我使用:
注释中的*@param Plans | array$plan
public function findMembersByPlans( $planArray)
{
$queryBuilder = $this->createQueryBuilder('m');
$count = $queryBuilder->select('count(m)')
->leftJoin('mp.plan', 'p')
->where($queryBuilder->expr()->in('p.plan', ':planArray'))
->setParameters(
[
'planArray'=> $planArray,
]);
如何获得成员数?当我经过一个物体时<代码>计划$Plan作为参数,一切正常 您可以尝试以下方法:
->leftJoin('mp.plan', 'p', Join::WITH, $queryBuilder->expr()->in('p.id', ':planIds'))
->setParameteter('planIds', array_map(
function (Plan $plan) {
return $plan->getId();
}, $planArray
))
您可以删除where子句。只从planArray中提取ID,而不使用完整对象。