我有两张桌子:所有者,书籍和作者。每个所有者都有很多书,每本书都有一个或多个作者。我想运行一个查询,为其提供所有者的ID,并获取所有书籍和作者的列表。我希望返回的对象有类似
的东西 $obj->first_name
$obj->last_name
$obj->books
然后$ obj->书籍本身有
$obj->books->title
$obj->books->authors
然后$ obj-> books-> authors有自己的名字和名字。
有人可以指导我参加这方面的教程吗?我知道我需要使用join,但是在使用它时,我最终会把所有东西都挤到一个对象中。
谢谢!
答案 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;