2014-07-14 66 views
1

我正在寫zend框架2,但我有一個問題,當我使用分頁加入。 我有這樣的功能:zend框架2,分頁器加入

  if ($paginated) {  
       $select = new \Zend\Db\Sql\Select(); 
       $select->from ('cliente'); 
       $select->columns (array ('*'), false); 
       $select->join ('privato', "cliente.idCliente = privato.idCliente", array ('*'), 'left'); 
       $select->join ('azienda', "cliente.idCliente = azienda.idCliente", array ('*'), 'left'); 

       $resultSetPrototype = new ResultSet(); 
       $resultSetPrototype->setArrayObjectPrototype (new Cliente()); 
       $paginatorAdapter = new DbSelect ( 
         $select, 
         $this->tableGateway->getAdapter()); 
         $resultSetPrototype); 
       //$paginatorAdapter = $this->tableGateway->selectWith ($select); 
       $paginator = new Paginator ($paginatorAdapter); 
       return $paginator; 
      } 

      $select = new \Zend\Db\Sql\Select(); 
      $select->from ('cliente'); 
      $select->columns (array ('*')); 
      $select->join ('privato', "cliente.idCliente = privato.idCliente", array ('*'), 'left'); 
      $select->join ('azienda', "cliente.idCliente = azienda.idCliente", array ('*'), 'left'); 

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

以外的代碼if語句可以正常工作,內部代號沒有。給我這個消息:

  Statement could not be executed (42S21 - 1060 - Duplicate column name 'idCliente') 

這裏是錯誤嗎? 非常感謝你

+0

你嘗試我的答案? – peterpeterson

回答

0
$select->columns (array ('idCliente1'=>'idCliente'), false); 

是因爲你必須提供一個別名,或在加入,你可以通過定義所有列忽略idCliente你想隨便取一個名字:

 $select->join ('azienda', "cliente.idCliente = azienda.idCliente", array ('column1','column2','etc..'), 'left');