Doctrine 检索关系时是否可以添加WHERE子句?

Doctrine 检索关系时是否可以添加WHERE子句?,doctrine,limit,where,relationships,Doctrine,Limit,Where,Relationships,在理论中,在获取与关系对应的对象的属性时,是否可以添加WHERE子句 就概念而言,假设我只想检索过去5天内发表的前3篇博客文章。我的“blog”对象有一个定义为关系的“posts”属性 更新 因为有些人在理解我所说的关系时遇到了一些困难: class Blog extends Doctrine_Record { ... public function setUp() { $this->hasMany("Note as Posts",

在理论中,在获取与关系对应的对象的属性时,是否可以添加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...........

我想知道我当时是否可以添加额外的条款。

我不确定我是否理解你的意思,但如果这是我在你的
博客表中所想的:

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
字段,并假设在
Blog
Posts
表之间定义了关系


不过,我可能完全误解了你的问题:-)

我不确定我是否明白你的意思,但如果这是我在你的
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
字段,并假设在
Blog
Posts
表之间定义了关系


但是,我可能完全误解了您的问题:-)

为什么不在执行查询之前添加where子句?您能提供一些示例代码吗?根据我提供的解释,我不确定是否需要示例代码。问题是,我不知道给出示例的代码!我在课堂上有一段感情。我想在访问关系时添加WHERE子句。这可能吗?为什么不在执行查询之前添加where子句?能否提供一些示例代码?根据我提供的解释,我不确定是否需要示例代码。问题是,我不知道给出示例的代码!我在课堂上有一段感情。我想在访问关系时添加WHERE子句。这可能吗?