Si eso estuve pensando, no es parte ni de POST ni de GET, le estuve haciendo dump a los métodos y sólo me sale en getEvent(). Voy a ver si mejor lo hago por GET, pero me gusta mucho el ejemplo del router que me diste.
Cómo hago para optimizar el paginador para no pasar todo el result set? qué se puede usar con ese modelo usando TableGateway?
Se está usando este model:
Código PHP:
Ver original<?php
namespace Album\Model;
use Zend\Db\TableGateway\TableGateway,
Zend\Db\Adapter\Adapter,
Zend\Db\ResultSet\ResultSet;
class AlbumTable extends TableGateway
{
public function __construct(Adapter $adapter = null, $databaseSchema = null,
ResultSet $selectResultPrototype = null)
{
return parent::__construct('cds', $adapter, $databaseSchema,
$selectResultPrototype);
}
public function fetchAll()
{
$resultSet = $this->select();
return $resultSet;
}
public function getAlbum($id)
{
$id = (int) $id;
$rowset = $this->select(array('id' => $id)); if (!$row) {
throw new \Exception("Could not find row $id");
}
return $row;
}
public function addAlbum($artist, $title)
{
'artist' => $artist,
'title' => $title
);
$this->insert($data);
}
public function updateAlbum($id, $artist, $title)
{
'artist' => $artist,
'title' => $title
);
$this->update($data, array('id', $id)); }
public function deleteAlbum($id) {
$this->delete(array('id' => $id)); }
}
y el controller:
Código PHP:
Ver originalpublic function indexAction()
{
$data = $this->albumTable->fetchAll();
$matches = $this->getEvent()->getRouteMatch();
$nPage = $matches->getParam('page', 1);
$paginator = Paginator::factory($data->toArray());
$paginator->setDefaultItemCountPerPage(5);
$paginator->setCurrentPageNumber($nPage);
return new ViewModel
(array( 'albums' => $paginator
));
}
Gracias por los comentarios.
Saludos.