Zend使用包含行的行连接多个表

时间:2013-12-08 23:59:58

标签: sql zend-framework join

我有两张桌子:所有者,书籍和作者。每个所有者都有很多书,每本书都有一个或多个作者。我想运行一个查询,为其提供所有者的ID,并获取所有书籍和作者的列表。我希望返回的对象有类似

的东西
 $obj->first_name
 $obj->last_name
 $obj->books

然后$ obj->书籍本身有

 $obj->books->title
 $obj->books->authors

然后$ obj-> books-> authors有自己的名字和名字。

有人可以指导我参加这方面的教程吗?我知道我需要使用join,但是在使用它时,我最终会把所有东西都挤到一个对象中。

谢谢!

1 个答案:

答案 0 :(得分:1)

在Zend framework2中连接表就像Zend框架版本1+一样,但在Zendframework 2中,我们可以使用TableGateway来操作表。我希望以下代码对您有所帮助。

   $select = $this->tableGateway->getSql()->select();

   $select->join('joining_tbl_name', 'tbl_name_belongs_to_this_model.book_id = joining_tbl_name.book_id', array('*'), 'joining_type');

   $select->where(array('tbl_name_belongs_to_this_model.owners_id' => {owner_id_value}));

   $resultSet = $this->tableGateway->selectWith($select);   

   return $resultSet;