首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Zend-Framework2分页连接表

Zend-Framework2分页连接表
EN

Stack Overflow用户
提问于 2013-06-21 01:29:57
回答 8查看 2.4K关注 0票数 0

我需要在这段代码中添加一个分页:

代码语言:javascript
运行
复制
    $select = new \Zend\Db\Sql\Select ;
    $select->from('school');
    $select->join('school_parent','school.school_parent_id = school_parent.school_parent_id');
    $resultSet = $this->tableGateway->selectWith($select);
    return $resultSet;

我尝试过this example,但我不能使用连接表。

有人能帮我吗?

EN

回答 8

Stack Overflow用户

发布于 2014-02-11 12:58:20

代码语言:javascript
运行
复制
public function fetchAll($paginated=false)
{
    if($paginated) {
        // create a new Select object for the table album
        $select = $this->getallAlbum();


        // create a new result set based on the Album entity
        $resultSetPrototype = new ResultSet();
        $resultSetPrototype->setArrayObjectPrototype(new Album());
        // create a new pagination adapter object
        $paginatorAdapter = new DbSelect(
        // our configured select object
        $select,
        // the adapter to run it against
        $this->tableGateway->getAdapter(),
        // the result set to hydrate
        $resultSetPrototype
        );
        $paginator = new Paginator($paginatorAdapter);
        return $paginator;
    }
    $resultSet = $this->tableGateway->select();
    return $resultSet;
}
 function getallAlbum(){
    $sql = new Select();
    $sql->from('album')->columns(array('id', 'artist', 'title'))->join('albumcategory', 'album.catId = albumcategory.catId', array('catName' => 'catName'), Select::JOIN_LEFT);
    return $sql; 
}
票数 3
EN

Stack Overflow用户

发布于 2013-06-21 23:32:33

分页应该可以很好地处理joins。这就是我所拥有的,类似于您提供的一个示例:

代码语言:javascript
运行
复制
$select = new \Zend\Db\Sql\Select ;
$select->from('school');
$select->join('school_parent','school.school_parent_id = school_parent.school_parent_id');

return new \Zend\Paginator\Paginator(
    new \Zend\Paginator\Adapter\DbSelect(
        $select,
        $this->tableGateway->getAdapter()
    )
);

如果上述方法不起作用,请发布您得到的确切错误。

票数 2
EN

Stack Overflow用户

发布于 2013-07-01 18:11:51

谢谢你的回答,但我试过你的代码,但我收到了这条PDOException消息:

SQLSTATE42S21:列已存在: 1060列名'school_parent_id‘重复

我还试着用Rob Allen的例子来调整我的“连接表”:

代码语言:javascript
运行
复制
public function fetchAll($paginated=false)
     {
          if($paginated) {
        // create a new Select object for the table album
            $select = new \Zend\Db\Sql\Select ;
            $select->from('school');
            $select->join('school_parent','school.school_parent_id = school_parent.school_parent_id');
            // create a new result set based on the Album entity
            $resultSetPrototype = new ResultSet();
            $resultSetPrototype->setArrayObjectPrototype(new School());
            // create a new pagination adapter object
            $paginatorAdapter = new DbSelect(
            // our configured select object
            $select,
            // the adapter to run it against
            $this->tableGateway->getAdapter(),
            // the result set to hydrate
            $resultSetPrototype
            );
            $paginator = new Paginator($paginatorAdapter);
            return $paginator;
        }

        $resultSet = $this->tableGateway->select();
        return $resultSet;    
     }

但结果是一样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17220053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档