2

我收到以下错误:

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 文件时,它会给出以下闪存消息:

Successfully imported 0 records from Book1.csv

我不明白为什么它不导入,它与错误/警告它的给予有关吗?

我查看了行为内部(第 20 行的 CsvImportBehaviour.php):class CsvImportBehavior extends ModelBehavior {
这在第 20 行没有意义,这只是类声明,所以我向下移动代码并看到以下内容:public function setup(Model &$Model, $settings = array()) {- 这在我看来确实是根据标准。

4

1 回答 1

3

要抑制错误/警告,请尝试:

  • 删除&之前$Model(不需要,因为 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

于 2013-04-18T20:38:44.843 回答