2012-08-28 12 views
7

Tengo una clase de PHP (POJO_FOO) que se asigna a una tabla (TABLE_FOO).Devolución de matriz de objetos de PDO

p. Ej. una fila igual a un objeto de esa clase.

Ahora estoy escribiendo un administrador que devuelve un conjunto de tales objetos que coinciden con una consulta en particular. Usando PDO, ¿cómo puedo devolver una matriz de objetos?

Cuando hago simple fetchAll, devuelve una matriz (que representa el número de resultados) de la matriz asociativa (column =>value). ¿Hay una opción en fetchALL que me pueda dar el resultado en forma de matriz de objetos?

+3

'PDO :: FETCH_CLASS'? – eggyal

+0

wow funciona ... no sé por qué no funcionaba cuando lo intenté. de todos modos ... gracias por la respuesta. – mrd081

Respuesta

8

puede utilizar PDO :: FETCH_CLASS a hidratar su clase con sus datos:

return $pdo->query('SELECT * FROM tablefoo')->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'POJO_FOO'); 

también es útil usar PDO :: FETCH_CLASS | PDO :: FETCH_PROPS_LATE porque hace que la construcción del objeto más consistente. Habitually su constructor se llama antes de todo. Si no usa FETCH_PROPS_LATE, se llamará después de que sus propiedades estén hidratadas.

+0

wow funciona ... no sé por qué no funcionaba cuando lo intenté. de todos modos ... gracias por la respuesta :) – mrd081

+0

un pequeño comentario sobre PDO :: FETCH_CLASS | PDO :: FETCH_PROPS_LATE – artragis

+0

¿Qué hará eso? (FETCH_PROPS_LATE) – mrd081

Cuestiones relacionadas