在doctrine中,是否可以在获取与关系对应的对象的属性时添加WHERE子句?
就概念而言,假设我只想检索过去5天内发布的前3篇博文。我的“博客”对象有一个“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...........
我想知道我当时是否可以添加其他条款。
答案 0 :(得分: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
字段,并假设在Blog
和Posts
表之间定义了关系。
我可能完全误解了你的问题: - )