Tengo un poco botado esto, pero he estado medio ocupado, actualmente estoy modificando un sistema hecho en Symfony1 y que tiene por ORM Propel, y bueno, llegado a un punto requeria tomar un listado de IDs que venian por parametro y realizar una consulta con ellas, por defecto Propel incluye una funcion que realiza esto de una manera muy simple y facil
$listIds = $this->getRequestParameter('listado_ids'); $this->propiedades = PropiedadPeer::retrieveByPks($listIds)
Esto claramente facilita mucho las cosas pero… que sucede si requiero ordenar o cruzar con otras tablas? esto ya no es muy factible, luego de buscar y buscar, logre encontrar ya casi por error algo que me permitia hacer esto, ocupando Criteria me permitia pasarle un array de IDs, lo dejo aqui por si a alguien le llega a servir
$c = new Criteria(); $c->setDistinct(); $c->add(PropiedadPeer::ACTIVA,1); $c->add(PropiedadPeer::ID, $listIds, Criteria::IN); $this->propiedad = PropiedadPeer::doSelect($c);
Y es Criteria::IN el que hace la «magia» y nos permite pasarle nuestro querido array de Ids y hacer la consulta que queramos.