Zend Framework 2和Doctrine 2从实体生成数据库



是否可以以模块化方式生成数据库?根据可用的实体之间的关系,具体取决于加载哪些模块?

示例设置

  • Zend Framework 2
  • DoctrineOmmodule
  • 学说

模块

  • 用户

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

用户和组1->多个或1-> 1

之间的关系

应用程序1

使用模块用户和组

应用程序2

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

是否可以使用学说注释来描述用户和组之间的关系,如果不存在实体,将删除?

当.//vendor/bin/doctrine-module orm:schema-tool:create or or ././vendor/bin/doctrine-module orm:schema-tool:更新被称为

否,如果未加载模块,则不应删除注释。您应该以不同的方式看待事物。

从您的应用程序1和2的设置中可以看到,将安装用户,组取决于用户。请注意,对于应用程序1,用户是不是取决于组。这意味着关系是单向:一个组知道其用户,但用户不了解其组。正如您所说,关系也很多:很多。令人惊讶的是,学说的协会映射称为多对多,单向。

唯一的事情是您只能通过Group加载用户组。您不能做这样的事情:

$user   = $repository->find(1);
$groups = $user->getGroups();

用户不知道这些组,因此无法加载它们。而是向组存储库询问组:

$user   = $userRepository->find(1);
$groups = $groupRepository->findAllByUser($user);

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

相关内容

  • 没有找到相关文章

最新更新