Int*_*lix 9 php oop zend-framework2
我有一个存储在我的数据库中的值的对象.我的对象还包含另一个对象,它只使用它的ID(外键)存储在数据库中.
http://framework.zend.com/manual/2.0/en/modules/zend.stdlib.hydrator.html
Hydrator/exchangeArray在ZF2中的功能之前,您将使用Mapper来获取创建对象所需的一切.现在我试图通过仅使用Hydration/exchangeArray填充我的对象来消除这个额外的图层,但是在创建嵌套对象时有点困难.
我的实体是否应该将Inner对象的表注入其中,以便在将其ID传递给我的'exchangeArray'时创建它?
以下是示例实体作为示例.
// Village
id, name, position, square_id
// Map Square
id, name, type
Run Code Online (Sandbox Code Playgroud)
将square_id发送到我的Village的exchangeArray()函数.它将获得mapTable并使用水合器使用我拥有的ID拉入方块.
在我的实体中有映射器实例似乎是不对的,因为我认为它们应该与任何东西断开连接,除了它自己的实体特定的参数和功能?
我想你可能会从中受益Zend\Stdlib\Hydrator\Strategy\StrategyInterface.
通过创建一个Strategy类,你可以将它附加到你的Hydrator,所以当找到一个特定的键(在这种情况下是square_id)时,Hydrator将数据传递给Strategy类到extract()或hydrate().
然后,策略类可以执行水合和提取数据所需的任何操作.我使用了几个策略类,简单地getArrayCopy()/ exchangeArray()和其他策略来水合/提取多个实体.
| 归档时间: |
|
| 查看次数: |
10973 次 |
| 最近记录: |