将模型类的 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 转换为简单对象数组的简单方法?的主要内容,如果未能解决你的问题,请参考以下文章