是否可以使用 Criteria 功能加入 Doctrine?

Is it possible to do joins in Doctrine with the Criteria functionality?

public function findActiveEvents($start, $end)
{
    $expr = Criteria::expr();
    $criteria = Criteria::create();
    $criteria->where(
           $expr->andX($expr->gte('start', $start), $expr->lte('end', $end)
    ));

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

假设我的事件实体有一个类别,而类别有很多事件,我将如何过滤这些?

如果您想收集类别对象上的非活动事件,您可以使用标准 class

class Category{
    protected $events; // (oneToMany)
    // ...
    protected getEvents() { // default method
        return $this->events;
    }
    protected getActiveEvents() { 
        $expr = Criteria::expr();
        $criteria = Criteria::create();
        $criteria->where(
               $expr->andX($expr->gte('start', $start), $expr->lte('end', $end)
        ));
        return $this->events->matching($criteria);
    }
}