【发布时间】:2017-03-31 13:42:00
【问题描述】:
我正在使用 MySql,结果/行在数组中返回。
我确实明白,归根结底,模型层的“目标”是在处理完 SGBD 查询后返回一个对象。
因此,将行(或单行)转换为对象的过程应该集成在 DataMapper(它是模型层的一部分)中,还是应该由注入到数据映射器?
谢谢
【问题讨论】:
我正在使用 MySql,结果/行在数组中返回。
我确实明白,归根结底,模型层的“目标”是在处理完 SGBD 查询后返回一个对象。
因此,将行(或单行)转换为对象的过程应该集成在 DataMapper(它是模型层的一部分)中,还是应该由注入到数据映射器?
谢谢
【问题讨论】:
所以,应该将行(或单行)转换为 对象被集成到 DataMapper 中。
嗯,是的,这是数据映射器的责任。它应该返回一个实体,而不是结果集。
还是应该由注入 DataMapper 的第三个服务负责?
这也是一种可能性,谷歌到“UnitOfWork”我认为这就是你要找的。 https://www.sitepoint.com/implementing-a-unit-of-work/
你也可以看看学说来源 https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/EntityManager.php
【讨论】:
最好将对象从模型返回到控制器,因为无论何时您需要结果或行都可以遍历所需的每一个。
【讨论】: