在Propel中对过滤器进行分组

时间:2012-12-14 04:49:29

标签: php symfony propel

我目前有一个基于Propel的查询,如下所示:

$product = ProductQuery::create()
  ->filterByLive(1)
  ->filterByApproved(1)
  ->findOneByFilename($filename);

我经常使用这个查询,而不是必须链接两个过滤器,我想知道是否可以创建一个封装它们的新过滤器?这意味着如果我将来添加一个额外的过滤器,那么我可以在这个单一方法中完成,而不必通过添加新过滤器的整个项目。

例如:

$product = ProductQuery::create()
  ->filterByIsActive()
  ->findOneByFilename($filename);

这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以在ProductQuery

中创建所需的方法
public function filterByIsActive()
{
    return $this
            ->filterByLive(1)
            ->filterByApproved(1);
}

Propel只生成一次这个文件,你可以把你喜欢的任何代码放在这个类中 - 它不会被覆盖。