Foros del Web » Programando para Internet » PHP » Symfony »

consultas m:m orientacion

Estas en el tema de consultas m:m orientacion en el foro de Symfony en Foros del Web. Hola tengo problemas ,supongo yo de comprencion del funcionamiento de las relaciones m:m el lio es que no he podido realizar una consulta a labase ...
  #1 (permalink)  
Antiguo 09/09/2014, 13:37
Avatar de yosandry91  
Fecha de Ingreso: diciembre-2013
Mensajes: 34
Antigüedad: 10 años, 11 meses
Puntos: 0
Pregunta consultas m:m orientacion

Hola tengo problemas ,supongo yo de comprencion del funcionamiento de las relaciones m:m el lio es que no he podido realizar una consulta a labase de datos.Entiendo bien todo lo de crear la base de datos pero a la hora de realizar una consulta no se como relacionarlo por no existir una entidad para la tabla intermedia .
Me hace falta que metiren na mano
  #2 (permalink)  
Antiguo 09/09/2014, 17:41
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: consultas m:m orientacion

Solo necesitas hacer el JOIN mendiante las propiedades que tienes en los extremos de la relación. Doctrine sabe que existe una tabla intermedia así que no necesitas declararla en las consultas.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 22/09/2014, 17:44
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 10 años, 4 meses
Puntos: 44
Respuesta: consultas m:m orientacion

Bueno en realidad, la forma correcta de mapear una relación many to many es como decís sin crear una entidad para la tabla intermedia. De todas maneras, si se te complica mucho mapearlo, podrías crearla.

Igualmente te recomiendo que revises la documentación oficial y la mapees como corresponde. Simplemente tenés que indicar en los campos que componen la relación, que son many to many, y en los mismos pasar como parámetro el nombre de la tabla que es parte de esa relación.
Ejemplo:

Código PHP:
    /**
     * @ManyToMany(targetEntity="Phonenumber")
     * @JoinTable(name="users_phonenumbers",
     *      joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id", unique=true)},
     *      inverseJoinColumns={@ORM\JoinColumn(name="phonenum_id", referencedColumnName="id")}
     * )
     **/
    
private $phonenumbers
En este mapeo le pasás dentro de joinTable el nombre de la tabla producto de la relación N-N y luego los nombres de los campos que componen la relación. Y del otro lado de la relación (en la otra entidad) debés indicar también el campo que es parte de esa relación.
Hay más opciones para agregar, todo depende de lo que quieras hacer.

Acá podés encontrar más info: [url]http://doctrine-orm.readthedocs.org/en/latest/reference/association-mapping.html[/url]

Última edición por GeekGirl; 02/10/2014 a las 11:58

Etiquetas: orientacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:00.