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

[SOLUCIONADO] Formulario con checkboxes de varios registros de una misma entidad

Estas en el tema de Formulario con checkboxes de varios registros de una misma entidad en el foro de Symfony en Foros del Web. Tengo esta entidad: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php   namespace Project\UsuarioBundle\Entity ;   use Doctrine\ORM\Mapping as ORM ;   /**  * Permiso  * ...
  #1 (permalink)  
Antiguo 02/03/2016, 06:45
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Formulario con checkboxes de varios registros de una misma entidad

Tengo esta entidad:

Código PHP:
Ver original
  1. <?php
  2.  
  3. namespace Project\UsuarioBundle\Entity;
  4.  
  5. use Doctrine\ORM\Mapping as ORM;
  6.  
  7. /**
  8.  * Permiso
  9.  *
  10.  * @ORM\Table(name="permisos")
  11.  * @ORM\Entity(repositoryClass="Project\UsuarioBundle\Repository\PermisoRepository")
  12.  */
  13. class Permiso
  14. {
  15.     /**
  16.      * @var int
  17.      *
  18.      * @ORM\Column(name="id", type="integer")
  19.      * @ORM\Id
  20.      * @ORM\GeneratedValue(strategy="AUTO")
  21.      */
  22.     private $id;
  23.  
  24.     /**
  25.      * @var string
  26.      *
  27.      * @ORM\Column(name="tipo", type="string", length=255, unique=true)
  28.      */
  29.     private $tipo;
  30.    
  31.     /**
  32.      * @ORM\ManyToMany(targetEntity="Usuario", mappedBy="permisos")
  33.      */
  34.     private $usuarios;
  35.  
  36.  
  37.     /**
  38.      * Get id
  39.      *
  40.      * @return integer
  41.      */
  42.     public function getId()
  43.     {
  44.         return $this->id;
  45.     }
  46.  
  47.     /**
  48.      * Set tipo
  49.      *
  50.      * @param string $tipo
  51.      * @return Permiso
  52.      */
  53.     public function setTipo($tipo)
  54.     {
  55.         $this->tipo = $tipo;
  56.  
  57.         return $this;
  58.     }
  59.  
  60.     /**
  61.      * Get tipo
  62.      *
  63.      * @return string
  64.      */
  65.     public function getTipo()
  66.     {
  67.         return $this->tipo;
  68.     }
  69.     /**
  70.      * Constructor
  71.      */
  72.     public function __construct()
  73.     {
  74.         $this->usuarios = new \Doctrine\Common\Collections\ArrayCollection();
  75.     }
  76.  
  77.     /**
  78.      * Add usuarios
  79.      *
  80.      * @param \Project\UsuarioBundle\Entity\Usuario $usuarios
  81.      * @return Permiso
  82.      */
  83.     public function addUsuario(\Project\UsuarioBundle\Entity\Usuario $usuarios)
  84.     {
  85.         $this->usuarios[] = $usuarios;
  86.  
  87.         return $this;
  88.     }
  89.  
  90.     /**
  91.      * Remove usuarios
  92.      *
  93.      * @param \Project\UsuarioBundle\Entity\Usuario $usuarios
  94.      */
  95.     public function removeUsuario(\Project\UsuarioBundle\Entity\Usuario $usuarios)
  96.     {
  97.         $this->usuarios->removeElement($usuarios);
  98.     }
  99.  
  100.     /**
  101.      * Get usuarios
  102.      *
  103.      * @return \Doctrine\Common\Collections\Collection
  104.      */
  105.     public function getUsuarios()
  106.     {
  107.         return $this->usuarios;
  108.     }
  109.    
  110.     public function __toString()
  111.     {
  112.         return $this->tipo;
  113.     }
  114. }

Y me gustaría crear un formulario con el componentes Forms que muestre checkbox por cada permiso que tenga en la base de datos. He probado CheckboxType y EntityType pero sólo consigo que me muestre un solo checkbox.

Código PHP:
Ver original
  1. public function buildForm(FormBuilderInterface $builder, array $options)
  2. {
  3.         $em = $this->container->get('doctrine')->getEntityManager();
  4.         $permisos = $em->getRepository('UsuarioBundle:Permiso')->findAll();
  5.        
  6.         foreach($permisos as $permiso){
  7.             $builder
  8.                 ->add(  'id',
  9.                         CheckboxType::class,
  10.                         array(  'label' => $permiso->getTipo()
  11.  
  12.                     )
  13.                 )
  14.             ;
  15.         }
  16. }

Se puede hacer lo quiero?
  #2 (permalink)  
Antiguo 02/03/2016, 18:07
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Formulario con checkboxes de varios registros de una misma entidad

Si no mal recuerdo creo que esto te debe de funcionar.
Código PHP:
Ver original
  1. $builder->add('permisos', EntityType::class, array(
  2.     'class' => 'AppBundle:Permiso',
  3.     'multiple' => true,
  4.     'expanded' => true,
  5. ));
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: checkboxes, entidad, formulario, registros
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 20:37.