我目前有一个基于Propel的查询,如下所示:
$product = ProductQuery::create()
->filterByLive(1)
->filterByApproved(1)
->findOneByFilename($filename);
我经常使用这个查询,而不是必须链接两个过滤器,我想知道是否可以创建一个封装它们的新过滤器?这意味着如果我将来添加一个额外的过滤器,那么我可以在这个单一方法中完成,而不必通过添加新过滤器的整个项目。
例如:
$product = ProductQuery::create()
->filterByIsActive()
->findOneByFilename($filename);
这可能吗?
答案 0 :(得分:2)
您可以在ProductQuery
:
public function filterByIsActive()
{
return $this
->filterByLive(1)
->filterByApproved(1);
}
Propel只生成一次这个文件,你可以把你喜欢的任何代码放在这个类中 - 它不会被覆盖。