2014-11-22 2 views
1

Я пытаюсь понять, как отображать несколько элементов Ajax с помощью JSON. Я следовал за этим Using ajax in zend framework 2 и выворачивающий работает нормально, но теперь хотите передать, например, 10 объекта с помощью JSONZend 2 Ajax JSON несколько данных

public function indexAction() 
{ 
    $result = new JsonModel (array(
     'fototable' => $this->FotoTable->getFotos() 
     ) 
    ); 
    return $result; 
} 

, а затем цикл в JS и отображения данных. Проблема в том, что я делаю над кодом. Я не получаю никакого выхода Json. Я попытался сериализовать данные, но я получаю сообщение об ошибке, из-за которой не может быть сериализована запись PDO.

Вот мой Fototable класс:

<?php 

namespace Media\Model; 

use Zend\Db\TableGateway\TableGateway; 
use Zend\Db\Sql; 
use Zend\Db\Sql\Select; 
use Zend\Db\Sql\Where; 
use Zend\Db\Adapter\Adapter; 

class FotoTable extends TableGateway{ 

    public static $tableName = 'media'; 

    public function addFoto(array $data) 
    { 
     return $this->insert($data); 
    } 

    public function updateFoto(array $insertData, $id) 
    { 
     return $this->update($insertData, array('id' => $id)); 
    } 

    public function getFotos() 
    { 
     $select = new Select(); 
     $select->from(self::$tableName); 
     $resultSet = $this->selectWith($select); 
     $resultSet->buffer(); 

     return $resultSet;  
    } 

    public function getFotoById($id) 
    { 
     $select = new Select(); 
     $select->from(self::$tableName); 
     $select->where(array('id' => $id)); 
     return $this->selectWith($select)->current(); 
    } 

    public function getFotosByObject($project) 
    { 
     $select = new Select(); 
     $select->from(self::$tableName); 
     $select->where(array('object_id' => $project)); 

     return $this->selectWith($select); 
    } 
} 
+0

Вы можете также поделиться Footable сигнатуру класса с методом getFotos()? – edigu

+0

только что отредактировал сообщение – user3544190

ответ

3

в

public function getFotos() 
{ 
    $select = new Select(); 
    $select->from(self::$tableName); 
    $resultSet = $this->selectWith($select); 
    $resultSet->buffer(); 

    return $resultSet;  
} 

Вы возвратите Resultset, который не является массивом. Вы можете сделать

return $resultSet->toArray(); 

иногда массив не доступен, так что вы можете перемещаться по Resultset в массив

$array = array(); 
foreach ($resultSet as $row) { 
    $array[] = $row 
} 
return $array; 
Смежные вопросы