CakePHP有一个Model-> find等价物,它返回一个对象数组吗?

时间:2011-08-11 06:24:33

标签: cakephp cakephp-appmodel

CakePHP返回嵌套数组,而不返回Model->find方法的对象集合。 CakePHP是否提供了一种检索模型集合的方法?

3 个答案:

答案 0 :(得分:1)

不,不管你喜不喜欢,cake使用多维数组作为数据(对于通常的CRUD函数)。但是如果你愿意,你可以重新定义find方法以将数组映射到对象中。

答案 1 :(得分:1)

您可以使用Set class中列出的map arrays to objectsback again(和this blog post)。

CakePHP(回到PHP 4兼容日)选择在对象上使用数组,因为PHP包含了大量的数组操作函数,这使得使用数组变得容易。 PHP喜欢数组,所以我认为在当时平衡PHP的优势和良好的设计模式是有意义的。

我相信CakePHP 2.0模型仍然会返回数组(我假设是为了向后兼容),尽管你可能想看一下Lithium framework - 它开始生活的意图是CakePHP 3.0(仅支持PHP 5.3+) - 或者另外一个PHP 5+框架。

这些较新的框架倾向于更充分地利用PHP 5的newer OOP features,并倾向于将记录作为对象返回(参见:Lithium APImanual中的模型)。

答案 2 :(得分:0)

你可以在afterFind()中转换。但你为什么需要呢?