gpt4 book ai didi

forms - symfony2多对多表单复选框

转载 作者:行者123 更新时间:2023-12-03 12:27:43 25 4
gpt4 key购买 nike

我在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", type="string", length=30) */
protected $name;

/** @ORM\Column(name="role", type="string", 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呈现为复选框列表。

关于forms - symfony2多对多表单复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com