Zend Framework 3 - 连接两个模块

Zend Framework 3 - connect two modules

我正在玩 Zend 3,我有一个问题。

我正在构建一个用于创建和查看时间 sheets 的小型仪表板。我有 "sheet" 个实体和 "client" 个实体。

客户端页面相对简单,但是我不知道如何编程来使用 sheet 页面做我想做的事情。

我想要做的是:我有一个 sheet 实体,它有一个 ID、一个日期、一个时间和一个保存客户端 ID 的数据库列。在前端,我现在想显示客户端的名称而不是 id。 但这意味着我必须使用客户端模块的 getName() 函数。 通常我会创建一个新的客户端,然后只询问名称。

然而,在使用博客文章的 Zend 教程构建我的应用程序之后,对于所有的工厂和接口,我不知道要创建什么实例以及从哪里获取构造函数变量。

我确定对此有多个答案,但我就是这样做的;

1:为 hydrator 创建一个策略,它通过 __construct 方法获取客户端存储库。在 "hydrate" 方法上,从存储库获取客户端数据并将其放入 sheet 模型

2:创建一个名为 "injectClient" 的可调用对象 class。在 __invoke 方法上以 sheet 作为参数。当你得到它时,向那个 sheet 的客户端请求客户端存储库。你必须在这里加入两个表。这对延迟加载很有用。在第一种方法中,您必须在加载 sheet 时加载客户端数据。但是这个,你可以在你真正需要的时候调用它。

我对 "must have to be there" 数据使用第一个答案。就像多语言应用程序上的语言。第二个用于延迟加载。

您也可以使用像 doctrine 这样的对象映射器。不说反面就是一直用lazy-load