2013-03-07 4 views
1

ServiceManager를 사용하지 않고 데이터베이스를 쿼리 할 수없는 이유를 이해하는 데 도움이 필요합니다. 아니면 내가 잘못하고있는 다른 것일 수도 있습니다. 내 접근 방식은 아마도 권장하지 않지만 귀하의 대답은 프레임 워크를 더 잘 이해하는 데 도움이됩니다. 다음과 같이Zf2 TableGateway

내 모델은 다음과 같습니다

namespace Album\Model; 

use Zend\Db\TableGateway\TableGateway; 
use Zend\Db\Adapter\Adapter; 

class AlbumTable 
{ 
    public function getAll() 
    { 
     $configArray = ['driver' => 'Pdo_Mysql', 'database' => 'zf2tutorial', 'username' => 'root']; 
     $adapter = new Adapter($configArray); 
     $tableGateway = new TableGateway('Album', $adapter); 
     $resultSet = $tableGateway->select(); 
     return $resultSet; 
    } 
} 

내 컨트롤러 :

namespace Album\Controller; 

use Zend\Mvc\Controller\AbstractActionController; 
use Zend\View\Model\ViewModel; 
use Album\Model\AlbumTable; 

class AlbumController extends AbstractActionController 
{ 
    public function indexAction() 
    { 
     $rowset = new AlbumTable(); 
     $rowset->getAll(); 
     return new Viewmodel(array(
      'rows' => $rowset 
     )); 
    } 
} 

해당 파일보기 :

var_dump($this->rows) 
// outputs: object(Album\Model\AlbumTable)[250]. 

감사합니다.

답변

2

결과 집합을 반환하는 getAll()의 결과가 아니라 AlbumTable 객체를 전달하고 있습니다.

$rows = $rowset->getAll(); 
return new Viewmodel(array(
    'rows' => $rows 
)); 
+0

감사합니다. Andrew. – Ori