Php Symfony:在所有数组中获得相同的函数
我有两个疑问:Php Symfony:在所有数组中获得相同的函数,php,sql,arrays,symfony,doctrine,Php,Sql,Arrays,Symfony,Doctrine,我有两个疑问: $queryHisto = $repo->createQueryBuilder('h'); $queryHisto->select('h', 'c') ->join('h.season', 's', 'WITH', 'h.player = ?1') ->join('h.club', 'c') ->orderBy('s.year', 'ASC')
$queryHisto = $repo->createQueryBuilder('h');
$queryHisto->select('h', 'c')
->join('h.season', 's', 'WITH', 'h.player = ?1')
->join('h.club', 'c')
->orderBy('s.year', 'ASC')
->setParameters(['1' => $id]);
$playerInfo = $queryHisto->getQuery()->getResult();
$queryDivision =$manager->createQuery('SELECT c FROM App\Entity\Classement c JOIN c.clubHistos h WHERE h.club = :club AND c.season = :season');
$queryDivision->setParameters(['club' => $playerInfo[0]->getClub(), 'season' => $playerInfo[0]->getSeason()]);
$division = $queryDivision->getResult();
这样写,我的第二个查询将只获得第一个查询的第一个数组的俱乐部和季节,因为
playerInfo[0]
。如何从第一次查询的所有数组中获取getClub()
和getseasure()
函数?研究如何执行WHERE。。。在
中,使用生成器查询并传递映射数组(对这两个参数都使用$playerInfo
上的array\u map
)。不过,这可能应该合并到一个查询中,因为数据是明确连接的。感谢您的回答。我不明白为什么我的查询中需要一个IN
语句?当我在phpMyAdmin中尝试时,该查询获取我想要的内容。至于数组映射,我如何在我的setParameters()函数中实现它?如果要匹配多个值(这是我理解的您想要实现的),您需要在中使用。对参数使用array\u map
没有什么特别之处。您只需映射整个数组两次,第一次调用所有元素上的getClub()
,第二次调用getseasure()
。我对Symfony很陌生,但当我映射时,$qc=array\u map(“getClub()”,$playerfo)
会给我一个错误:期望参数1是有效的回调函数'getClub()'未找到或函数名无效