将模型类的 Doctrine_Collection 转换为简单对象数组的简单方法?

Posted

技术标签:

【中文标题】将模型类的 Doctrine_Collection 转换为简单对象数组的简单方法?【英文标题】:Easy way to convert a Doctrine_Collection of Model classes to an array of simple objects? 【发布时间】:2010-05-18 06:18:33 【问题描述】:

为了清楚地分离 Controller 和 View 层,我不想再将完整的对象传递给我的视图。相反,我只想传递包含数据但没有任何方法的数组和对象。否则,视图脚本将能够删除 Doctrine 记录或在对象树中遍历不打算用于视图的数据。

【问题讨论】:

【参考方案1】:

我相信$collection->toArray()应该做你想做的事

见http://www.doctrine-project.org/documentation/manual/1_1/en/working-with-models:arrays-and-objects

【讨论】:

我知道这个,但发现数组不方便。有没有办法生成一个包含数据但不包含方法等的对象? 你会失去很多学说实施的吸气剂/水合魔法。从长远来看,你真的是在限制自己。【参考方案2】:

你正在做一些完全没有意义的事情。那有什么意义呢?您不会阻止自己/其他程序员在视图层进行非法操作。也许您无法使用$obj->delete();,但Doctrine_Query::create()->delete()->from('ObjectTable')->execute(); 仍然可用。

将对象传递给视图,但不要对它们执行此类方法 - 这是你应该做的。

【讨论】:

这一点是在安全审计期间提出的,以便更容易查看视图。

以上是关于将模型类的 Doctrine_Collection 转换为简单对象数组的简单方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个数据放在模型类的字符串中?

模型和实例类的分离

用于像素聚类的高斯混合模型

在 Freemarker 模板中,如何获取数据模型类的名称?

设计模式UML模型图

获取keras模型中3个类的混淆矩阵