【发布时间】:2020-09-19 06:02:54
【问题描述】:
我在 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 得到的最好的东西是带有选定角色名称的文本框的行。但这不是我需要的。
【问题讨论】:
标签: forms symfony many-to-many