Pregunta Symfony2, Doctrine 2: getResult Object


$posts = $em->find('Application\BlogBundle\Entity\Post',1);
print_r ($posts);

¿Por qué lo tengo?

Barii\BlogBundle\Entity\Post Object ( [id:Barii\BlogBundle\Entity\Post:private] => 1 [title:Application\BlogBundle\Entity\Post:private] => something [body:Application\BlogBundle\Entity\Post:private] => content  )

En lugar de una simple matriz como esta:

array ( [id] => 1,
        [title] => "something",            
        [body] => "content"  )

Lo uso con Symfony 2.


5
2018-05-14 19:32


origen


Respuestas:


Tienes un par de opciones aquí. Por lo que yo sé, no se pueden encontrar resultados como matrices de repositorios de entidades de forma predeterminada. En su lugar, puedes hacer una de dos cosas:

Primero, podrías implementar un toArray() método en su objeto entidad (tal vez a través de una superclase mapeada) que simplemente devuelve una matriz de propiedades.

En segundo lugar, puede usar Doctrine Query Language para extraer la información que necesita utilizando el getArrayResult() método, tal vez algo como esto:

$query = $em->createQuery('SELECT p FROM Application\BlogBundle\Entity\Post p WHERE p.id=:pid');
$query->setParameter('tid', $postId);
$result = $query->getArrayResult(); // shortcut for $query->getResult(Query::HYDRATE_ARRAY);

Se puede encontrar documentación más detallada sobre DQL. aquí.


9
2018-05-15 01:59