Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2014, 18:02
sxwark
 
Fecha de Ingreso: agosto-2013
Ubicación: Oyón/Alava
Mensajes: 23
Antigüedad: 10 años, 9 meses
Puntos: 0
Formulario para insertar datos en entidades con relacion M:N

Buenas antes de nada gracias a este estupendo foro que hace que cada día seamos un poco más sabios.


Bueno al lio explico el problema que tengo.

Estoy haciendo una tienda online y esto la creación de productos.

Dichos productos tienen una relacion N:M con la entidad categoria.

Lo que no encuentro es como poder crear los productos viendo en un campo tipo entity las categorias asociadas que puedo elegir.

Las entidades que tengo son las siguientes.


Entidad categoria:
Código PHP:
<?php

namespace WolfrcProductosBundleEntity
;

use 
WolfrcTiendaBundleUtilUtil;
use 
DoctrineORMMapping as ORM;

/**
 * Categoria
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Wolfrc\ProductosBundle\Entity\CategoriaRepository")
 */
class Categoria
{
    
/**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     * @ORM\OneToMany(targetEntity="Wolfrc\ProductosBundle\Entity\Categoria", mappedBy="categoriaPadre", cascade="remove")
     */
    
private $id;

    
/**
     * @var string
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    
private $nombre;

    
/**
     * @var string
     *
     * @ORM\Column(name="slug", type="string", length=255)
     */
    
private $slug;

    
/**
     * @var string
     *
     * @ORM\Column(name="descripcion", type="string", length=255, nullable=true)
     */
    
private $descripcion;

    
/**
     *
     * @ORM\ManyToOne(targetEntity="Wolfrc\ProductosBundle\Entity\Categoria", inversedBy="id")
     * @ORM\JoinColumn(name="categoriaPadre_id", referencedColumnName="id", onDelete="SET NULL")
     */
    
private $categoriaPadre;
    
    
/**
     *
     * @ORM\ManyToMany(targetEntity="Wolfrc\ProductosBundle\Entity\Productos", inversedBy="categorias")
     */
    
private $productos;
    
    
    public function 
__construct() {
        
$this->id = new DoctrineCommonCollectionsArrayCollection();
        
$this->productos = new DoctrineCommonCollectionsArrayCollection();
    }

    public function 
__toString() {
        return 
$this->getNombre();
    }

    
/**
     * Get id
     *
     * @return integer 
     */
    
public function getId()
    {
        return 
$this->id;
    }

    
/**
     * Set nombre
     *
     * @param string $nombre
     * @return Categoria
     */
    
public function setNombre($nombre)
    {
        
$this->nombre $nombre;
        
$this->setSlug(Util::generateSlug($nombre));

        return 
$this;
    }

    
/**
     * Get nombre
     *
     * @return string 
     */
    
public function getNombre()
    {
        return 
$this->nombre;
    }

    
/**
     * Set slig
     *
     * @param string $slig
     * @return Categoria
     */
    
public function setSlug($slug)
    {
        
$this->slug $slug;

        return 
$this;
    }

    
/**
     * Get slig
     *
     * @return string 
     */
    
public function getSlug()
    {
        return 
$this->slug;
    }

    
/**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Categoria
     */
    
public function setDescripcion($descripcion)
    {
        
$this->descripcion $descripcion;

        return 
$this;
    }

    
/**
     * Get descripcion
     *
     * @return string 
     */
    
public function getDescripcion()
    {
        return 
$this->descripcion;
    }

    
/**
     * Add categoriaPadre
     *
     * @param \Wolfrc\ProductosBundle\Entity\Categoria $categoriaPadre
     * @return Categoria
     */
    
public function addCategoriaPadre(WolfrcProductosBundleEntityCategoria $categoriaPadre)
    {
        
$this->categoriaPadre[] = $categoriaPadre;

        return 
$this;
    }

    
/**
     * Remove categoriaPadre
     *
     * @param \Wolfrc\ProductosBundle\Entity\Categoria $categoriaPadre
     */
    
public function removeCategoriaPadre(WolfrcProductosBundleEntityCategoria $categoriaPadre)
    {
        
$this->categoriaPadre->removeElement($categoriaPadre);
    }

    
/**
     * Get categoriaPadre
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    
public function getCategoriaPadre()
    {
        return 
$this->categoriaPadre;
    }

    
/**
     * Add productos
     *
     * @param \Wolfrc\ProductosBundle\Entity\Productos $productos
     * @return Categoria
     */
    
public function addProducto(WolfrcProductosBundleEntityProductos $productos)
    {
        
$this->productos[] = $productos;

        return 
$this;
    }

    
/**
     * Remove productos
     *
     * @param \Wolfrc\ProductosBundle\Entity\Productos $productos
     */
    
public function removeProducto(WolfrcProductosBundleEntityProductos $productos)
    {
        
$this->productos->removeElement($productos);
    }

    
/**
     * Get productos
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    
public function getProductos()
    {
        return 
$this->productos;
    }

    
/**
     * Set categoriaPadre
     *
     * @param \Wolfrc\ProductosBundle\Entity\Categoria $categoriaPadre
     * @return Categoria
     */
    
public function setCategoriaPadre(WolfrcProductosBundleEntityCategoria $categoriaPadre null)
    {
        
$this->categoriaPadre $categoriaPadre;

        return 
$this;
    }
}
Gracias a todos los que me puedan hechar una mano.

Si tienen algun lugar donde poder ver estas dudas y me los pueden indicar me harian un gran favor gracias otra vez.