如何将实体数组传递到实体库并运行"where in"查询



我有一个Plan $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,
]);

如何获取成员计数?当我正在传递1个对象时。Plan $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子句。

最新更新