Doctrine 检索关系时是否可以添加WHERE子句?
在理论中,在获取与关系对应的对象的属性时,是否可以添加WHERE子句 就概念而言,假设我只想检索过去5天内发表的前3篇博客文章。我的“blog”对象有一个定义为关系的“posts”属性 更新 因为有些人在理解我所说的关系时遇到了一些困难: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",
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子句。这可能吗?