如何每个用户都可以在symfony2中拥有自己的私人教义条目



我正在symfony2中创建一个应用程序,其中包含具有教义的客人,场地,活动和客人类别。仅与symfony2保持联系3周,我已经完成了为sql中的所有实体创建模式表,它们之间的依赖关系和每个实体的crud。我的问题更多的是理论而不是实践。

我将创建一个安全捆绑包

(来自书中的安全捆绑包或 FOSUserBundle)。然后,我将设置三个角色:

  • 管理员
  • 主办单位
  • 客人

每位客人都有自己的个人资料,每个组织者都将"依附"于他的客人 - 简单来说,组织者X只会交流和查看客人X-1,X-2等 - 他将无法查看Y-1。对你来说,我问这样的问题似乎很简单和有趣,但是......我是自学成才:)

问题是:如何将活动附加到组织者及其来宾?我能想象到的最简单的方法是:为每个客人、事件、类别、事件设置一个唯一的令牌(或任何自行生成的代码)并加入表。

如果客人约翰与令牌=vsfv2435r3frwf24t5grf 有任何事件/类别/场地在活动、类别或场地中查找相同的令牌并分配权限。

这听起来合乎逻辑还是愚蠢?

您需要查看教义关联映射(一对多,多对多等)

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/association-mapping.html

它们非常容易设置(你可以在Symfony中使用注释或在yml模式文件中完成),并且可以让你轻松完成你正在描述的事情,请查看数据库的Symfony文档以获取更多信息

http://symfony.com/doc/current/book/doctrine.html

您可以

OrganiserGuest创建交叉表,以指示他们参加/组织的活动。每个Guest也将有交叉表Organiser。通过这种方式,您可以轻松地将组织者分配给客人并按其过滤(我假设客人可以参加多个活动等)。

在教义世界中,它看起来像这样:

事件

...
/**
 * @ORMManyToMany(targetEntity="Organiser", inversedBy="events")
 */
protected $organisers;
/**
 * @ORMManyToMany(targetEntity="Guest", inversedBy="events")
 */
protected $guests;

主办单位

...
/**
 * @ORMManyToMany(targetEntity="Event", mappedBy="organisers")
 */
protected $events;
/**
 * @ORMManyToMany(targetEntity="Guest", mappedBy="organisers")
 */
protected $guests;

客人

...
/**
 * @ORMManyToMany(targetEntity="Event", mappedBy="guests")
 */
protected $events;
/**
 * @ORMManyToMany(targetEntity="Organiser", inversedBy="guests")
 */
protected $organisers;

相关内容

  • 没有找到相关文章

最新更新