Zend framework2 - 联合查询分页

public function fetchAll($where=null, $qs=null, $paginated=false)
    {    
        
        //var_dump($this->tableGateway->getSql()->getTable());exit();  //out:lf_admin,省略getSql()将输出不加前缀名
        $tab_friendLink = $this->tableGateway->table;
        $tab_uploadFiles = $this->uploadFilesTableGateway->table;
        $select = new \Zend\Db\Sql\Select ;
        $select->from(array('f'=>'lf_friend_link'));
        //$select->columns(array('f.*'));
        
        $onWhere = new Where(); // this is so that the 2 doesnt get qouted wrong.
        $onWhere->expression('friend_link_id = u.depend_id and u.mods_code="friendLink"', array());    //OR: $onWhere->expression('friend_link_id = u.depend_id ', array())->and->equalTo('u.mods_code', 'friendLink');
        
        $upload_column = array('file_id','mods_code','mime_type','att_type','depend_id','filename','file_rename','file_width','file_height');
        $select->join(array('u'=>'lf_upload_files'), $onWhere, $upload_column, $select::JOIN_LEFT);
        
        if (!empty($where)){
            $select->where($where);
        }
        if (is_array($qs)){
            foreach ($qs as $key=>$value){
                $select->where->like($key, '%'. $value .'%');
            }
        }
        $select->order(array('friend_link_id'=>'desc'));
         
        
        $adapter = $this->tableGateway->getAdapter(); //or $adapter = $this->sm->get('Zend\Db\Adapter\Adapter');
        
        
        if ($paginated){
            //分页
            $friendLink = (array)new FriendLink();                        
            $rs = new ResultSet();
            $rs->setArrayObjectPrototype(new ArrayObject($friendLink));   //相当返回一个空的操作对象rs
            $pageAdapter = new DbSelect($select, $adapter, $rs);    
            $paginator = new Paginator($pageAdapter);    //由构造器创建一个 $paginator实例
            return $paginator;            
        }        
        //不分页    
        $sql = new Sql($adapter);
        $statement = $sql->prepareStatementForSqlObject($select);
        $resultSet = $statement->execute();
        
        //var_dump($resultSet);exit();
        
        return $resultSet;    
                    
    }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值