Les dejo mi clase coleccion y como realizado la operacion.
Código PHP:
class Coleccion extends ArrayObject
{
private $data;
public function __construct()
{
$this->data = new ArrayObject();
}
public function get($i)
{
return $this->data[$i];
}
public function append($object)
{
$this->data->Append($object);
}
public function getIterator() {
return $this->data->getIterator();
}
function count(){
return $this->data->count();
}
public function addObject($object)
{
$this->data->Append($object);
}
public function deleteObjectByPos($i){
$this->data->offsetUnset($i);
}
function returnAll(){
return $this->data;
}
}
Código PHP:
$clientes = new Coleccion()
$res = 'Contiene el resultado de la consulta a la BD que si contiene datos';
foreach($res as $row){
/* Creo el objeto cliente cargo las valores mediente los metodos setProvpedad($row['propiedad'})*/
/* luego se puede dar el caso de que el cliente tenga pedidos realizados y cargo para el cliente una coleccion de pedidos */
$pedidosDelCliente = new Coleccion();
/* voy comparando con una coleccion de pedidos previamente cargada y si el pedido 'Actual' es del cliente se lo agrego a la nueva colleccion $pedidosDelCliente */
$pedidosDelCliente->addObject($pedido);
/* luego cuando tengo todos los pedidos del cliente en $pedidosDelCliente realizo */
$cliente->setPedidos($pedidosDelCliente);
/* Luego agrego el cliente que contiene varios datos y una colleccion de pedidos a la coleccion cliente*/
$clientes->addObject($cliente);
}
/* Esto se realiza como sigue ya que el Perfil Operador solo puede consultar datos del cliente y los pedidos del mismo no puede actualizar nada*/
/* cuando salgo del foreach retorno la coleccion de cliente */
$_SESSION['Clientes'] = serialize($clientes);
/* Luego en otra pagina cuando deserealizo no me muestra nada y como en el servidor donde esta el sitio es donde no me funciona no puedo realizar un debug como para ver que contiene*/
$clientes = unserialize($_SESSION['Clientes'] );
Espero que alguien me puede ayudar y desde ya muchas gracias.
Saludos
Nico.