使用数组实现Cakephp模型

使用数组实现Cakephp模型,cakephp,csv,model,Cakephp,Csv,Model,CakePHP食谱指出,模型可以使用文件(例如csv)而不是实际的数据库表,但我找不到任何实现 我想知道是否可以在CakePHP中使用数据数组作为模型,因为我有一组相当静态的数据,这对于我与另一个表的关系很重要,但是为它创建一个完整的表没有多大意义 可以使用数组实现CakePHP模型吗?使用数组实现应该很简单。您只需要在其中实现一些方法来读取和/或写入数据,这些数据只能从数组中获取。由于每个方法都将模型实例作为其第一个参数传递,因此可以在模型中保留实际数据: class MyModel exte

CakePHP食谱指出,模型可以使用文件(例如csv)而不是实际的数据库表,但我找不到任何实现

我想知道是否可以在CakePHP中使用数据数组作为模型,因为我有一组相当静态的数据,这对于我与另一个表的关系很重要,但是为它创建一个完整的表没有多大意义


可以使用数组实现CakePHP模型吗?

使用数组实现应该很简单。您只需要在其中实现一些方法来读取和/或写入数据,这些数据只能从数组中获取。由于每个方法都将模型实例作为其第一个参数传递,因此可以在模型中保留实际数据:

class MyModel extends AppModel {
    public $useDbConfig = 'array';
    public $staticData = array( /* data here */ );
}



// in the DataSource:
public function read($model, $queryData = array()) {
    $data = $model->staticData;
    // do something with $data
}
如果需要,您可以使用这一数据源将模型映射到阵列数据,从而使您能够透明地将这些模型与基于数据库的模型关联起来

这使您可以将阵列源用作模型,而无需执行任何操作,只需提供阵列数据并在模型中设置数据源名称


阅读文档中的一些示例-它非常容易使用,代码也很容易理解。它还允许您对模型、条件等执行正常的查找*操作。

如果您已经在使用数据库,我将为此静态数据集创建一个表。您的数据库不会介意,它比用数组“伪造”表要“干净”得多。。。它(小路)在哪里?使用上面的函数
read()
可以编辑什么文件?在我看来,这似乎是一个控制器功能,但我不确定。请阅读有关自定义数据源的链接手册章节。答案中的链接已断开。有人能提供工作链接吗?@wenbert更新了链接。