假设我有3个表:Book
,Author
和BookAuthor
。
Book
有id
,name
Author
有id
,name
BookAuthor
有id
,book
_ id,author
_ id
我想查找作者的所有书籍,我知道author_id
。任何人都可以通过Doctrine Query Language
告诉我如何执行此操作吗?
答案 0 :(得分:3)
我认为有几种方法:
<强> 1 强>
行动中:
$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();
}
<强> 2 强>
例如,某些时候您在书籍表中有一些参数,例如书籍可以是活动的。
行动中:
$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();
}