CakePHP Cookbook中states提到,模型可以使用文件(例如csv)而不是实际的数据库表,但我找不到任何实现方式。
我想知道在CakePHP中是否可以使用数据数组作为模型,因为我有一组相当静态的数据对我与另一个表格的关系很重要,但创建完整的表格并不太合适。
是否可以使用数组实现CakePHP模型?
我想知道在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()
函数?我认为这是一个控制器函数,但我不确定。 - Peter Krauss如果您想要,可以使用http://github.com/jrbasso/array_datasource,这是一个数据源,用于将模型映射到数组数据,从而使您能够透明地将这些模型与基于数据库的模型相关联。
这使您可以使用数组源作为模型,而无需除提供数组数据和在模型中设置数据源名称之外进行任何操作。
阅读文档以获取一些示例-它真的很容易使用,代码也很容易理解。它还允许您对模型执行正常的查找*操作、条件等。