首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从实体生成Zend框架2和Doctrine 2数据库

从实体生成Zend框架2和Doctrine 2数据库
EN

Stack Overflow用户
提问于 2014-01-30 03:35:01
回答 1查看 432关注 0票数 1

是否可以以模块化的方式生成数据库?根据加载的模块使实体之间的关系可用?

示例设置

  • Zend框架2
  • DoctrineORMModule
  • 教条

模块

  • 用户

每个模块都有它们管理的相应实体。使用注释创建数据库和创建代理。

用户与组1 ->多或1 -> 1的关系

应用程序1

使用模块用户和组

应用程序2

使用模块用户,而不使用组。

是否有可能使用理论注释来描述用户和组之间的关系,如果一个实体不存在,就会被删除?

删除或添加以下关系时:./供应商/bin/主义-模块orm:模式-工具:创建或./供应商/bin/原则-模块orm:模式-工具:更新被调用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-31 00:58:42

不,如果没有加载模块,则不应该删除注释。你应该换个角度看待事情。

从应用程序1和2的设置中可以看出,用户将被安装,并且组取决于用户。注意,对于应用程序1,用户是而不是,这取决于组。这意味着关系是unidirectional:,一个组知道它的用户,但是用户不知道它的组。正如你说的,这种关系也很多:很多。令人惊讶的是,Doctrine有一个名为多对多,单向的的关联映射。

唯一的问题是,您只能通过Group加载用户的组。你不能这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$user   = $repository->find(1);
$groups = $user->getGroups();

用户不知道这些组,所以它无法加载它们。相反,向组存储库询问组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$user   = $userRepository->find(1);
$groups = $groupRepository->findAllByUser($user);

这将要求组存储库查找与给定用户相关的所有组。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21455362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文