Ver Mensaje Individual
  #14 (permalink)  
Antiguo 07/04/2012, 16:00
chemajmb
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Ordenando Repositories en Doctrine y otras dudas doctrine

Ok, es que como no controlo aun, supuse que seria "= null" por un ejemplo que vi, pero ya veo que es "IS NULL". Tengo que aprender de DQL.

Ya me ha funcionado a la perfeccion y te estoy muy agradecido.


Me da verguenza preguntar esto, pero no encuentro la biblioteca con la informacion acerca de las funciones findAll, findBy, findOneby, cuantos parametros admiten y como son esos parametros.

He encontrado lo que estaba buscando en el propio codigo pero necesito saber mas informacion acerca del tipo de datos de los parametros
Código PHP:
Ver original
  1. public function findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
  2.     {
  3.         return $this->_em->getUnitOfWork()->getEntityPersister($this->_entityName)->loadAll($criteria, $orderBy, $limit, $offset);
  4.     }
¿ donde puedo encontrarlo ?



A ver, una pregunta al menos para mi con peso.
Tengo el siguiente dilema.
Me traigo un repositorio de mi entidad CATEGORIA, esta entidad tiene una relacion con la categoria padre.
Asi bien el objeto de la entidad categoria consta de varios tipo de objetos simples como el nombre, descripcion... y otro tipo de objetos compuesto que es la categoria padre.
Cuando en la vista muestro los datos de cada categoria cuando me traigo todas las categorias con findAll, lo hago de la sigueinte forma
un bucle para recorrer el repositorio y en cada posicion
echo $categoria->nombre
echo $categoria->descripcion
echo $categoria->visible
echo $categoria->padrecategoria->nombre

Entonces claro, ahora queria traerme las categorias de la tabla de categorias ordenadas por diferentes campos.
Lo he intentado con la funcion findby
$this->_vista->categorias = $this->get('manejador_categoria')->findby( array(), array('padrecategoria' => 'ASC' );
he probado con varios campos y funciona, excepto con padrecategoria, y es evidente, pues este es una relacion, es un objeto.
Mi pregunta es, para ordenarlo por este campo ¿ debo de crear una consulta en el repositorio trayendome los campos necesarios para ordenar ?
Es decir, traerme el nombre de la categoria padre y el resto de campos de la categoria para luego asi poder ordenar por el campo del nombre de la categoria padre.

Creo que es asi y tiene bastante logica, pero como no estoy seguro, estoy empezando, no controlo mucho tampoco de sql, evidentemente tampoco de dql, preferia preguntar, para no perder tiempo intentando algo que no se puede hacer asi o se hace de otra manera.

Ok arreglado, juan palomo, yo me lo guiso, yo me lo como.

Código PHP:
Ver original
  1. public function findprueba(){
  2.         $query = $this->_em->createQuery('SELECT c FROM Entidad\Categoria c JOIN c.padrecategoria p ORDER BY p.nombre ASC');
  3.         return $query->getResult();
  4.     }

Última edición por chemajmb; 08/04/2012 a las 02:09