Php 我需要申报吗;角色“;在symfony2中类作为数组还是arrayCollection?
我有这样一个场景:Php 我需要申报吗;角色“;在symfony2中类作为数组还是arrayCollection?,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我有这样一个场景: 用户将属于组 组将具有特定的角色 现在我想知道我需要在Group.php中声明这个吗 这是,这是 或 我不知道这是如何与symfony安全工作。我的意思是symfony security希望在arraycollection或arraycollection中扮演什么样的角色。那么,您的问题是arraycollection或arraycollection 使用ArrayCollection,因为它在ORM上下文中做得更好,并且更易于扩展/操作(请参阅:) 有关在条令中设置集合
将属于用户
组
将具有特定的组
角色
我不知道这是如何与symfony安全工作。我的意思是symfony security希望在arraycollection或arraycollection中扮演什么样的角色。那么,您的问题是
arraycollection
或arraycollection
使用ArrayCollection,因为它在ORM上下文中做得更好,并且更易于扩展/操作(请参阅:)
有关在条令中设置集合的更多信息,请参阅
在文档中
FOSUserBundle <>你也可以考虑使用优秀的。它完全支持
组
和角色
访问控制列表(ACL)
您可能还想签出ACL:
在复杂的应用程序中,您经常会遇到这样的问题:访问决策不仅基于请求访问的人员(令牌),而且还涉及请求访问的域对象。这就是ACL系统的用武之地
那么,您的问题是
Array
还是ArrayCollection
使用ArrayCollection,因为它在ORM上下文中做得更好,并且更易于扩展/操作(请参阅:)
有关在条令中设置集合的更多信息,请参阅
在文档中
FOSUserBundle <>你也可以考虑使用优秀的。它完全支持
组
和角色
访问控制列表(ACL)
您可能还想签出ACL:
在复杂的应用程序中,您经常会遇到这样的问题:访问决策不仅基于请求访问的人员(令牌),而且还涉及请求访问的域对象。这就是ACL系统的用武之地
Symfony 2期望和
Role
的array
作为getRoles()
方法中的返回值。由于用户
可以有多个组
,而每个组可能有多个角色
,因此我会:
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User
{
/* @ORM\ManyToMany(targetEntity="Group", inversedBy="users") */
private $groups;
public function __construct()
{
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getRoles()
{
$roles = array();
foreach($this->groups as $group) :
$roles = array_merge($roles, $group->getRoles()->toArray());
endforeach;
return $roles;
}
}
Symfony 2期望和
角色的数组作为getRoles()
方法中的返回值。由于用户
可以有多个组
,而每个组可能有多个角色
,因此我会:
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User
{
/* @ORM\ManyToMany(targetEntity="Group", inversedBy="users") */
private $groups;
public function __construct()
{
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getRoles()
{
$roles = array();
foreach($this->groups as $group) :
$roles = array_merge($roles, $group->getRoles()->toArray());
endforeach;
return $roles;
}
}
/**
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User
{
/* @ORM\ManyToMany(targetEntity="Group", inversedBy="users") */
private $groups;
public function __construct()
{
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getRoles()
{
$roles = array();
foreach($this->groups as $group) :
$roles = array_merge($roles, $group->getRoles()->toArray());
endforeach;
return $roles;
}
}