0

教義では、関係に対応するオブジェクトのプロパティをフェッチするときにWHERE句を追加することは可能ですか?

コンセプトとして、過去5日間に作成された最初の3つのブログ投稿のみを取得したいとします。私の「blog」オブジェクトには、リレーションシップとして定義されている「posts」プロパティがあります。

アップデート...

一部の人々は私が関係によって何を意味するかを理解するのにいくつかの困難を抱えているので:

class Blog extends Doctrine_Record {

       ...

       public function setUp() {

            $this->hasMany("Note as Posts", array(
                "local" => "blog_name",
                "foreign" => "post_id",
                "refClass" => "BlogPost"
            ));

       }
}

ご覧のとおり、これは教義によってサポートされている明示的な関係です。それを使用してクエリを実行すると、次のようになります。

     $instanceOfBlog->Posts...........

その時に条項を追加できるかどうか知りたいのですが。

4

1 に答える 1

3

私があなたをフォローしているのかどうかはわかりませんが、それがあなたのBlogTableクラスで私が思うことなら:

public function getRecentPosts()
{
  $qry = self::createQuery("b")
    ->innerJoin("b.Posts p")
    ->where("p.created_at > ?", date("Y-m-d H:i:s", strtotime("-5 days")))
    ->orderBy("p.created_at DESC")
    ->limit(3);

  $results = $qry->execute();
}

それはあなたが求めていたものですか?これは、Postsオブジェクトのフィールドに基づいており、テーブルとテーブルcreated_atの間に関係が定義されていることを前提としています。BlogPosts

私はあなたの質問を完全に誤解したかもしれませんが:-)

于 2010-07-08T16:29:38.820 に答える