首页 > 解决方案 > 如何将实体数组传递给实体存储库并运行“在哪里”查询?

问题描述

我有数组Plan $plans。如何将该数组 $plans 传递给我的成员控制器?目前我使用: * @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作为参数一切正常。

标签: symfonydoctrinedqlphp-5.6

解决方案


你可以尝试这样的事情:

->leftJoin('mp.plan', 'p', Join::WITH, $queryBuilder->expr()->in('p.id', ':planIds'))
->setParameteter('planIds', array_map(
    function (Plan $plan) {
        return $plan->getId();
    }, $planArray
))

您可以删除 where 子句。


推荐阅读