2011-11-25 47 views
0

假設我有3個表格:Book,AuthorBookAuthor如何從Doctrine中的多對多關係表中檢索數據

  • Bookidname
  • Authoridname
  • BookAuthoridbook _id,author _id

我想找到一個作者的所有書籍,我知道ow author_id。任何人都可以告訴我如何與Doctrine Query Language做到這一點?

回答

3

我認爲有幾個方面:

在行動:

$this->books= Doctrine::getTable('BookAuthor')->getBookAuthor($author_id); 

在模型:

public function getBookAuthor($author_id) 
     { 
      $q = $this->createQuery('a') 
         ->Where('a.author_id=?',$author_id) 
         ->addORDERBY ('created_at DESC'); 

     return $q->execute(); 
     } 

有些時候,例如你在書籍表中有一些參數,例如書可以是活動的或不活動的。

在行動:

$this->books= Doctrine::getTable('Book')->getBookAuthor($author_id); 

在模型:

public function getBookAuthor($author_id) 
     { 
      $q = $this->createQuery('a') 
         ->andWhere('a.active=1') 
         ->leftJoin('a.BookAuthor o') 
         ->andWhere('o.author_id=?',$author_id) 
         ->addORDERBY ('created_at DESC'); 


    return $q->execute(); 
    } 
+0

檢查,請我的回答是公認的,如果它幫助你;-) – denys281

相關問題