Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 如何将实体数组传递到实体存储库并运行“where in”查询?_Symfony_Doctrine_Dql_Php 5.6 - Fatal编程技术网

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,而不使用完整对象。