【问题标题】:Doctrine : One to one to one relation?教义:一对一的关系?
【发布时间】:2012-05-29 01:19:45
【问题描述】:

我正在为工作中的 Symfony2 项目制作实体。

我正在尝试创建一个系统来控制对组织(公司)和角色功能中某些资源的访问。总而言之,所有公司的角色都是相同的,但一家公司可能会为某个角色提供资源,而另一家公司可能不想这样做。

对于资源,它们代表了一些动作和内容,比如这个的创建,那个的版本等等……

我试图用以下实体解决这个问题。它代表了我的三个实体组织、角色和资源之间的一对一关系。

我想知道这种关系是否可能/良好,或者是否有其他方式来管理资源。

/**
 * @ORM\Entity
 */
class Organisation_Role_Resource
{
    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Organisation")
     */
    private $organisation;

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Role")
     */
    private $role;

    /**
     * @ORM\Id
     * @ORM\ManyToOne(targetEntity="Aurae\UserBundle\Entity\Resource")
     */
    private $resource;

你对如何解决这个问题有什么建议吗?

是否有另一种/更好的方式来表示资源(实际上是页面和链接)并管理它们的访问?

【问题讨论】:

    标签: php symfony doctrine entities database-relations


    【解决方案1】:

    虽然这可能是非常有效的方法,但您实际上是在重新发明轮子。

    Symfony2 已经将其全部实现为“访问控制列表”或(ACL):

    http://symfony.com/doc/current/cookbook/security/acl.html

    检查一下....我认为它涵盖了您需要的一切...

    【讨论】:

    • 感谢您的回答。我已经阅读了一些关于 ACL 的内容,但我看不出它是否真的涵盖了我所需要的内容。不过我会调查的,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多