我收到以下错误:
Strict (2048): Declaration of CsvImportBehavior::setup() should be compatible
with ModelBehavior::setup(Model $model, $config = Array)
[APP\Plugin\Utils\Model\Behavior\CsvImportBehavior.php, line 20]
我按照本网站上的教程:http://www.pronique.com/blog/enable-csv-import-all-controllers-models-cakephp-2
导入CSV文件时,会显示以下Flash消息:
Successfully imported 0 records from Book1.csv
我不明白为什么它不导入,是否与错误/警告有关?
我查看了行为(第20行的CsvImportBehaviour.php):class CsvImportBehavior extends ModelBehavior {
这在第20行没有意义,那只是类声明,所以我向下移动代码并看到以下内容:public function setup(Model &$Model, $settings = array()) {
- 在我看来,这似乎符合标准。
答案 0 :(得分:3)
要取消错误/警告,请尝试:
&
之前移除$Model
(因为模型是对象而不是必需的,因此已经传递 byref )(可选)(见@mark评论):
将$Model
重命名为$model
(小写)
将$settings
重命名为$config
我不知道不从CSV导入记录的原因,这需要您进行调试。
CakePHP还有一个CSV dataSource
作为数据源插件的一部分。
使用此功能,您可以创建一个模型,该模型不使用数据库,而是使用CSV文件作为其源。例如,这允许您执行此操作;
$csvData = $this->MyCsvModel->find('all');
这将返回CSV文件中的所有行。通过将$csvData
保存到其他模型
链接:
https://github.com/cakephp/datasources/tree/2.0 https://github.com/cakephp/datasources/blob/2.0/Model/Datasource/CsvSource.php