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

Вы передаете объект AlbumTable, а не результат getAll(), который возвращает ваш ResultSet.

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

Спасибо Эндрю. – Ori

Смежные вопросы