0

CakePHP 为该Model->find方法返回嵌套数组并且没有对象集合。CakePHP 是否提供了一种检索模型集合的方法?

4

3 回答 3

1

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

于 2011-08-11T08:23:01.627 回答
1

您可以使用Set该类数组映射到对象(然后再返回),如本博文中所述。

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

我相信 CakePHP 2.0 模型仍会返回数组(我假设是为了向后兼容),尽管您可能想查看Lithium 框架——它开始时打算成为 CakePHP 3.0(仅支持 PHP 5.3+)——或另一个 PHP超过 5 个框架。

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

于 2011-08-11T13:08:57.653 回答
0

您可以在 afterFind() 中进行转换。但是你为什么需要那个?

于 2011-08-11T09:29:53.057 回答