2014-10-04 33 views
2

我試圖從我的數據庫返回數據到Zend Framework 2中的JSON。我現在使用TableGateway,它返回一個ResultSet。但JsonModel無法顯示結果集。 那麼有沒有辦法轉換它,或者有其他方式來訪問我的數據庫?ZF2:TableGateway結果集到JSON

中的HomeController中的indexAction

public function indexAction() 
{ 
    return new JsonModel(array(
     'posts' => $posts, 
     'resources' => $resources, 
     'style' => $style, 
     'imgStyle' => $imgStyle, 
     'success' => true, 
    )); 
} 

,返回結果集

public function fetchAll() 
{ 
    $resultSet = $this->tableGateway->select(function (Select $select) { 
     $select->order('date DESC'); 
    }); 
    return $resultSet; 
} 

回答

3

考慮您已經在module.config.php這樣做的功能:

'view_manager' => array(
    'strategies' => array(
     'ViewJsonStrategy', 
    ), 
), 

我的下一個建議是將結果轉換爲數組。

$resultSet->toArray(); 

OR

$return = array(); 

foreach($resultSet as $r) 
    $return[]=$r; 

你回報新JsonModel,是正確的。

+1

toArray()將無法正常工作,因此我將其手動轉換爲數組! – kevingoos 2014-10-06 08:55:50

+1

是的,實際上toArray會失敗,如果你將它提取到一個類,不知道爲什麼,這將是有用的函數toArray()總是工作:),我相信zf2開發人員可能有一個很好的理由。 – peterpeterson 2014-10-06 09:52:30