Problema con sfDoctrinePager Call to undefined method Doctrine_Collection::offset()

183 views
Skip to first unread message

rosb

unread,
Nov 19, 2009, 12:31:48 AM11/19/09
to symfony-es
Hola a todo el mundo intento hacer un List Pagination pero obtengo el
siguiente fatal
error:

"Fatal error: Call to undefined method Doctrine_Collection::offset()
in /home/rosb/sfprojects/taurus_v01/lib/vendor/symfony/lib/plugins/
sfDoctrinePlugin/lib/pager/sfDoctrinePager.class.php on line 84"

Tengo en mi actions.class:

1.- $this->lote = $this->getRoute()->getObject();
2.- $this->pager = new sfDoctrinePager(
3.- 'TaurusAnimales',
4.- sfConfig::get('app_max_animal_on_lotes')
5.- );
6.- $this->pager->setQuery($this->lote->getAnimalesPorLoteQuery());
7.- $this->pager->setPage($request->getParameter('page', 1));
8.- $this->pager->init();

El "getAnimalesPorLoteQuery()" me proporciona los datos del modelo
TaurusAnimales, Si hago un (echo $this->query) en la clase
sfDoctrinePager.class.php sobre el metodo setQuery() obtengo:

Doctrine_Collection
data : Array(
0 : Object(TaurusAnimales)
1 : Object(TaurusAnimales)
2 : Object(TaurusAnimales)
3 : Object(TaurusAnimales)
4 : Object(TaurusAnimales)
5 : Object(TaurusAnimales)
6 : Object(TaurusAnimales)
7 : Object(TaurusAnimales)
8 : Object(TaurusAnimales)
9 : Object(TaurusAnimales)
10 : Object(TaurusAnimales)
)
Por lo que presumo que el método trabaja bien al retornarme el tipo de
objeto esperado.

Estoy usando symfony 1.3.0-BETA1, curiosamente tengo implementado el
tutorial jobeet con la misma fuente y todo funciona de maravilla.

Alguien ha tenido el mismo problema?

Muchas gracias de antemano por su tiempo.

rosb

unread,
Nov 19, 2009, 3:47:39 PM11/19/09
to symfony-es
Solucionado

En el método getAnimalesPorLoteQuery(), tenia return $q->execute(); y
debe estar en: return $q; obviamente esta retornando valores no
esperados por sfDoctrinePager()

Aprovecho la oportunidad para preguntar si existe algún material sobre
el funcionamiento interno del framework, es decir, como se pasan las
las variables/objetos internamente por el framework, aún me cuesta
bastante entender la lógica de funcionamiento y esto porque soy nuevo
programando, ahora todo lo que hago, lo hago tomando como referencia
el tutorial jobeet, pero en muchos casos no entiendo muy bien como ya
dije el funcionamiento.

Disculpen las posibles molestias

Nixs

unread,
Nov 19, 2009, 6:41:04 PM11/19/09
to symfony-es
Mira que casualidad hoy estuve utilizando sfDoctrinePager() tmb.

Yo tambien estoy con curiosidad sobre como funciona el framework mas a
fondo. en la guia de symfony se explica como se van ejecutando paso
por paso, filtro por filtro. Por si te intereza hace poco
descubri ,auqneu en realidad no descubri nada, pero como data que
podes acceder a muchas cosas internas de symfony de la siguiente
manera:

$context = sfContext::getInstance(); // esto lo podes acceder desde
cualquier lado

Y podes tener acceso a lo siguiente :

$context->getActionName();
$context->getActionStack();
$context->getController();
$context->getDatabaseConnection();
$context->getLogger();
$context->getModuleDirectory();
$context->getModuleName();
$context->getRequest();
$context->getResponse();
$context->getUser();

Como algo interezante, se puede debuggear el framework desde la
primera linea del controlador frontal para ver como funciona el "pasa
manos".

Saludos!!

NIco
Reply all
Reply to author
Forward
0 new messages