Doctrine2 - 两个连接的关联映射

时间:2015-10-20 12:09:04

标签: doctrine-orm

我有以下关联:

餐厅 1:n 用餐 1:n 可用性

现在我想有一种方法可以获得今天所有的食物。有没有办法在实体中做到这一点?我考虑过标准API,但由于第二个关联,我不知道如何处理它。

class Restaurant {
    public function getTodaysMeals() {
        $criteria = Criteria::create()
            ->where(Criteria::expr()->eq('availabilities.date', '2015-10-20'));

        return $this->getMeals()->matching($criteria);
    }
}

===编辑===

这样我今天只能享用可用餐的餐厅,但我也希望餐厅不吃饭。

class RestarantRepository extends EntityRepository {
    public function find() {
        $this->createQueryBuilder('restaurant');
            ->addSelect('meals')
            ->addSelect('availabilities')
            ->leftJoin('restaurant.meals', 'meals')
            ->leftJoin('meals.availabilities', 'availabilities')
            ->where('availabilities.date', ':date');
            ->setParameter('date', '2015-10-21');

        return $queryBuilder->getQuery()->getResult();
    }
}

0 个答案:

没有答案