CakePHP Cookbook states模型可以使用文件(例如csv)而不是实际的数据库表,但我找不到任何实现。
我想知道是否有可能在CakePHP中使用数据数组作为模型,因为我有一个相当静态的数据集,这对我来说在与另一个表的关系中很重要但它并没有很多为它创造一个完整的表格。
是否可以使用Array实现CakePHP模型?
答案 0 :(得分:4)
使用custom DataSource实施应该是微不足道的。您只需要在其中实现一些用于读取和/或写入数据的方法,您可以从数组中获取这些方法。由于每个方法都将模型实例作为其第一个参数传递,因此您可以将实际数据保留在模型中:
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
}
答案 1 :(得分:1)
如果您愿意,可以使用http://github.com/jrbasso/array_datasource这是一个数据源,用于将模型映射到数组数据,这样您就可以透明地将这些模型与基于数据库的模型相关联。
这使您可以使用数组源作为模型,除了提供数组数据并在模型中设置数据源名称外,无需执行任何操作。
阅读文档以获取一些示例 - 它非常易于使用且代码易于理解。它还允许您对模型,条件等进行常规查找*操作。