Tengo esta entidad:
Código PHP:
Ver original<?php
namespace Project\UsuarioBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Permiso
*
* @ORM\Table(name="permisos")
* @ORM\Entity(repositoryClass="Project\UsuarioBundle\Repository\PermisoRepository")
*/
class Permiso
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="tipo", type="string", length=255, unique=true)
*/
private $tipo;
/**
* @ORM\ManyToMany(targetEntity="Usuario", mappedBy="permisos")
*/
private $usuarios;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set tipo
*
* @param string $tipo
* @return Permiso
*/
public function setTipo($tipo)
{
$this->tipo = $tipo;
return $this;
}
/**
* Get tipo
*
* @return string
*/
public function getTipo()
{
return $this->tipo;
}
/**
* Constructor
*/
public function __construct()
{
$this->usuarios = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add usuarios
*
* @param \Project\UsuarioBundle\Entity\Usuario $usuarios
* @return Permiso
*/
public function addUsuario(\Project\UsuarioBundle\Entity\Usuario $usuarios)
{
$this->usuarios[] = $usuarios;
return $this;
}
/**
* Remove usuarios
*
* @param \Project\UsuarioBundle\Entity\Usuario $usuarios
*/
public function removeUsuario(\Project\UsuarioBundle\Entity\Usuario $usuarios)
{
$this->usuarios->removeElement($usuarios);
}
/**
* Get usuarios
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getUsuarios()
{
return $this->usuarios;
}
public function __toString()
{
return $this->tipo;
}
}
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 originalpublic function buildForm
(FormBuilderInterface
$builder, array $options) {
$em = $this->container->get('doctrine')->getEntityManager();
$permisos = $em->getRepository('UsuarioBundle:Permiso')->findAll();
foreach($permisos as $permiso){
$builder
->add( 'id',
CheckboxType::class,
array( 'label' => $permiso->getTipo()
)
)
;
}
}
Se puede hacer lo quiero?