Doctrine orm 使用r->getCousines()进行ayCollection?当您收到餐厅时,您是否可以通过使用r->getCousines()获取ArrayCollection来获取菜肴?正如我在问题中提到的,它是有效的,但它执行N+1查询,其中N是餐厅的数量。关键

Doctrine orm 使用r->getCousines()进行ayCollection?当您收到餐厅时,您是否可以通过使用r->getCousines()获取ArrayCollection来获取菜肴?正如我在问题中提到的,它是有效的,但它执行N+1查询,其中N是餐厅的数量。关键,doctrine-orm,Doctrine Orm,使用r->getCousines()进行ayCollection?当您收到餐厅时,您是否可以通过使用r->getCousines()获取ArrayCollection来获取菜肴?正如我在问题中提到的,它是有效的,但它执行N+1查询,其中N是餐厅的数量。关键是在1个查询中使用急切加载来完成它。正如我在问题中提到的,它是有效的,但它执行N+1个查询,其中N是餐厅的数量。关键是要在一个查询中快速加载。这是一个多个关系,所以菜系没有餐厅!你完全正确!我很抱歉没有看到这个暗示。我更新了查询以反映manyt


使用r->getCousines()进行ayCollection?当您收到餐厅时,您是否可以通过使用r->getCousines()获取ArrayCollection来获取菜肴?正如我在问题中提到的,它是有效的,但它执行N+1查询,其中N是餐厅的数量。关键是在1个查询中使用急切加载来完成它。正如我在问题中提到的,它是有效的,但它执行N+1个查询,其中N是餐厅的数量。关键是要在一个查询中快速加载。这是一个多个关系,所以菜系没有
餐厅
!你完全正确!我很抱歉没有看到这个暗示。我更新了查询以反映
manytomy
关系。现在,它应该按照你期望的方式工作。这是一个多人的关系,所以烹饪没有餐厅!你完全正确!我很抱歉没有看到这个暗示。我更新了查询以反映
manytomy
关系。现在,它应该按照您期望的方式工作。
/**
 * @ManyToMany(targetEntity="Cuisine", fetch="EAGER")
 */
$qb = $em->createQueryBuilder();
$qb->select('r')
   ->from('Model\Restaurant', 'r')
   ->leftJoin('r.cuisines', 'c')
   ->where('c.id IN ?1')
   ->setParameter(1, $ids);
$query = $qb->getQuery();
$result = $query->getResult();

foreach ($result as $restaurant){
    //contains the whole arrayCollection
    var_dump($restaurant->getCuisines());
}
public function __construct() {
    $this->cuisines = new ArrayCollection();
}