Я думаю, что есть несколько способов:
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();
}