0

在原则上,是否可以在获取与关系对应的对象的属性时添加 WHERE 子句?

就概念而言,假设我只想检索过去 5 天内发表的前 3 篇博文。我的“博客”对象具有定义为关系的“帖子”属性。

更新...

由于有些人难以理解我所说的关系的含义:

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 回答