为了清楚地区分Controller和View图层,我不再希望将完整对象传递给我的视图。相反,我想只传递包含数据但没有任何方法的数组和对象。否则,视图脚本将能够删除Doctrine记录或在对象树中遍历不适合视图的数据。
答案 0 :(得分:8)
我相信$collection->toArray()
应该做你想做的事情
请参阅http://www.doctrine-project.org/documentation/manual/1_1/en/working-with-models:arrays-and-objects
答案 1 :(得分:1)
你做的事情完全没有意义。那是什么意思?您不会阻止自己/其他程序员在视图层中进行非法操作。也许你将无法$obj->delete();
,但Doctrine_Query::create()->delete()->from('ObjectTable')->execute();
仍然可用。
将对象传递给视图,只是不要对它们执行这样的方法 - 这就是你应该做的。