Autor Tema: ayuda con metodo findAll(); en symfomy 2  (Leído 1303 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado binarytec

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
ayuda con metodo findAll(); en symfomy 2
« : 02 de marzo de 2013, 04:48:01 pm »
Ayuda amigos, soy muy nuevo con esto de symfony y ahora tengo un problema, como puedo hacer algo como el metodo findAll pero que solo retorno los id de una tabla..

Conosco la siguiente instruccion
$ciudades = $manager->getRepository('DirectorioBundle:Ciudad')->findAll();

El cual me retorna todas las ciudades dentro de mi base de datos, pero esta no me permite hacer comparaciones para trabajar directamente con cada ciudad...

Por ejemplo:
Código: [Seleccionar]
foreach ($ciudades as $ciudad) {
    if ($ciudad == '1') {
        $iteraciones = 10;
    }else{
        $iteraciones = 5;
    }
}

Claro entiendo por que la instruccion arriba indicada me entrega TODOS los registros de la tabla, por eso solo necesito hacer algo para que me retorne los id y poder hacer la comparaciones necesarias...




Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:ayuda con metodo findAll(); en symfomy 2
« Respuesta #1 : 02 de marzo de 2013, 09:14:32 pm »
el metodo findAll() de doctrine te retorna un array lleno de entities llenas con datos, las entonces

Código: [Seleccionar]
foreach ($ciudades as $ciudad) {
    if ($ciudad->id == '1') {
        $iteraciones = 10;
    }else{
        $iteraciones = 5;
    }
}
puede darte el resultado que tu deseas, lo que hay es que ponerse a jugar un poco con los resultados que te da doctrine, saludos

Desconectado binarytec

  • Novato
  • *
  • Mensajes: 3
  • Puntuación: 0
    • Ver Perfil
Re:ayuda con metodo findAll(); en symfomy 2
« Respuesta #2 : 03 de marzo de 2013, 01:37:35 am »
Gracias carlos, pero ahora me salta un error..

Código: [Seleccionar]
PHP Fatal error:  Cannot access private property Clasificados\DirectorioBundle\Entity\Ciudad::$id in /home/usuario/Zonanet/clasificados.dev/src/Clasificados/DirectorioBundle/DataFixtures/ORM/Restaurante.php on line 26

y en esa linea se encuentra
Código: [Seleccionar]
if ($ciudad->id == '1'){
,
claro pude solucionarlo entrando al archivo Ciudad dentro de la carpeta Entity, cambiando

private $id

por

public $id

Pero creo que esto me podria traer problemas de seguridad en el futuro..

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:ayuda con metodo findAll(); en symfomy 2
« Respuesta #3 : 03 de marzo de 2013, 02:27:00 pm »
cierto mi error, las entities de doctrine tiene getter el deber ser es que llames al getter no que accedas directamente a la propiedad (tengo la mala costumbre de Yii :))
Código: [Seleccionar]
if ($ciudad->getId() == '1') {
 ....