0

私は現在、次のようなPropelベースのクエリを持っています:

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

私は定期的にこのクエリを使用していますが、2つのフィルターをチェーンする代わりに、それらをカプセル化する新しいフィルターを作成できるかどうか疑問に思いました。つまり、将来フィルターを追加する場合は、プロジェクト全体を調べて新しいフィルターを追加するのではなく、この1つの方法で簡単に追加できます。

例えば:

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

これは可能ですか?

4

1 に答える 1

2

必要なメソッドを作成できますProductQuery

public function filterByIsActive()
{
    return $this
            ->filterByLive(1)
            ->filterByApproved(1);
}

Propelはこのファイルを1回だけ生成し、このクラス内に好きなコードを入れることができます-そしてそれは上書きされません。

于 2012-12-14T07:14:33.943 に答える