我有一个对象,其值存储在我的数据库中。我的对象还包含另一个对象,该对象仅使用它的 ID(外键)存储在数据库中。
http://framework.zend.com/manual/2.0/en/modules/zend.stdlib.Hydrator.html
之前Hydrator/exchangeArray
在 ZF2 中,您可以使用 Mapper 来获取创建对象所需的一切。现在我试图通过使用来消除这个额外的层Hydration/exchangeArray
填充我的对象,但在创建嵌套对象方面有点困难。
我的实体是否应该将内部对象的表注入其中,以便在将其 ID 传递到我的 'exchangeArray' 时我可以创建它?
以下是示例实体作为示例。
// Village
id, name, position, square_id
// Map Square
id, name, type
将 square_id 发送到我的 Village 的 ExchangeArray() 函数后。它将获取地图表并使用 Hydrator 使用我拥有的 ID 拉入正方形。
在我的实体中拥有映射器实例似乎不正确,因为我认为它们应该与任何东西断开连接,但它自己的实体特定参数和功能?
我认为您可能会受益于查看Zend\Stdlib\Hydrator\Strategy\StrategyInterface
.
通过创建一个策略类,您可以将其附加到您的 Hydrator,因此当找到特定键(在本例中为 square_id)时,Hydrator 会将数据传递到策略类以extract()
or hydrate()
.
然后,策略类可以执行水合和提取数据所需的任何操作。我使用了几个策略类,它们很简单getArrayCopy()
/exchangeArray()
以及其他水合/提取多个实体的策略。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)