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

表单 – symfony2多对多表单复选框,第1张

概述我在symfony创建了2个实体:用户和角色在多对多的关系.这意味着每个用户可以拥有更多的角色和角色可以设置给许多用户. 用户类: /** * @ORM\Entity * @ORM\Table(name="JEP_User") * @ORM\Entity(repositoryClass="Chrchel\JepBundle\Repository\UserRepository") 我在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呈现为复选框列表.

总结

以上是内存溢出为你收集整理的表单 – symfony2多对多表单复选框全部内容,希望文章能够帮你解决表单 – symfony2多对多表单复选框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1102725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存