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;
}