表单 – symfony2多对多表单复选框

前端之家收集整理的这篇文章主要介绍了表单 – symfony2多对多表单复选框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在symfony创建了2个实体:用户和角色在多对多的关系.这意味着每个用户可以拥有更多的角色和角色可以设置给许多用户.

用户类:

/**
   * @ORM\Entity
   * @ORM\Table(name="JEP_User")
   * @ORM\Entity(repositoryClass="Chrchel\JepBundle\Repository\UserRepository")
   */
class User implements AdvancedUserInterface {

/**
 * @ORM\Id()
 * @ORM\Column(name="id",type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @ORM\Column(name="username",type="string",length=100,unique=true)
 */
private $username;

 /**
 * @ORM\ManyToMany(targetEntity="Role",inversedBy="users")
 *
 */
protected $roles;

//....
}

角色类:

/**
 * @ORM\Table(name="JEP_Role")
 * @ORM\Entity()
 */
 class Role implements RoleInterface {

/**
 * @ORM\Column(name="id",type="integer")
 * @ORM\Id()
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

  /** @ORM\Column(name="name",length=30) */
protected $name;

 /** @ORM\Column(name="role",length=20,unique=true) */
protected $role;

 /** @ORM\ManyToMany(targetEntity="User",mappedBy="roles") */
protected $users;
 //...
 }

我不明白如何在Symfony2中撰写查询构建器以列出所有存在的角色,并将其添加到UserForm的最后,可以选择(作为复选框)角色授予用户.
我试图在UserType中使用这样的集合

->add('roles','collection',array('label' => 'Role','required' => false,'type'=> new RoleType()))

从symfony获得的最好的行是带有选定的角色名称的文本框.但这不是我需要的.

解决方法

我使用实体类型而不是集合.我的东西集合主要用于实际创建一个Role对象并将其分配给User.

如果您只想列出所有现有的角色,并且能够选择并分配给用户,那么:

->add('roles','entity',array(
    'class' => 'MyBundle:Role','property'     => 'name','multiple'     => true
));

编辑:这将使窗口小部件呈现为多个< select>,参考entity type呈现为复选框列表.

原文链接:https://www.f2er.com/html/231256.html

猜你在找的HTML相关文章