是否可以使用Criteria功能在Doctrine中进行连接?

时间:2018-06-07 07:37:19

标签: symfony join doctrine criteria dql

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);
}

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

1 个答案:

答案 0 :(得分:0)

如果要获取类别对象上的非活动事件集合,可以使用条件类

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);
    }
}

How filter data inside entity object in Symfony 2 and Doctrine