2010-07-06 39 views
0

在doctrine中,當獲取與關係對應的對象的屬性時,是否可以添加WHERE子句?檢索關係時可以添加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........... 

我想知道如果我能在那個時候添加附加條款。

+0

誤解了你的問題,你爲什麼不執行查詢之前加where子句? – DrColossos 2010-07-08 08:21:52

+0

你能提供一些示例代碼嗎? – Tom 2010-07-08 08:35:47

+0

鑑於我提供的解釋,我不確定是否需要示例代碼。問題是,我不知道代碼給出的例子! 我在班上有一段感情。我想在訪問關係時添加WHERE子句。這可能嗎? – 2010-07-08 12:06:24

回答

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表之間定義了關係。

我可能已經完全然而:-)