$shops = $this->em->getRepository('models\Shop')->findAll();
Da mi matriz con entidades pero necesito la entidad como matriz.Convierta el resultado de una consulta en una matriz de matrices
¿Cómo convierto una entidad en una matriz?
$shops = $this->em->getRepository('models\Shop')->findAll();
Da mi matriz con entidades pero necesito la entidad como matriz.Convierta el resultado de una consulta en una matriz de matrices
¿Cómo convierto una entidad en una matriz?
Tuve el mismo problema. return get_object_vars($this)
no es una buena solución porque también convierte objeto/propiedades internas de doctrina.Después de algunas investigaciones encontré esta clase: EntitySerializer que crea una matriz limpia o JSON de sus entidades y elimina elementos innecesarios. La documentación se encuentra here. Por ejemplo, utilicé el siguiente código:
$patientProfile = $this->em->getRepository('Entities\Patientprofile')->findOneByuserid('2222222');
$entitySerializer=new Bgy\Doctrine\EntitySerializer($this->em);
$patientProfile=$entitySerializer->toArray($patientProfile);
Doctrina le permite especificar un modo de hidratación al ejecutar consultas, que permiten de cambiar el tipo de datos de los resultados devueltos. En este caso, necesita Query :: HYDRATE_ARRAY. No le permite especificar esto en el método predeterminado findAll(), que se encuentra en los repositorios. Tendrá que escribir su propio DQL para ello.
Si necesita una colección de ENTIDADES como matrices:
$query = $em->createQuery('SELECT u FROM User u');
$entites = $query->execute(array(), Query::HYDRATE_ARRAY);
// If you don't have parameters in the query, you can use the getResult() shortcut
$query = $em->createQuery('SELECT u FROM User u');
$entities = $query->getResult(Query::HYDRATE_ARRAY);
Si necesita una sola entidad como una matriz, por ejemplo. para un ID específico:
$query = $em->createQuery('SELECT u FROM User u WHERE u.id = ?1');
$query->setParameter(1, $id);
$entity = $query->getSingleResult(Query::HYDRATE_ARRAY);
Estos métodos se definen en Query y AbstractQuery.
Pero eso hace que no sea posible usarlo con el método abstracto EntityRepository-> findAll(). –
* entity as array * ¿Cómo se ve la entidad y cómo sería la matriz? – hakre