Cakephp Strict(2048):CsvImportBehavior::setup()的声明应与ModelBehavior兼容

Cakephp Strict(2048):CsvImportBehavior::setup()的声明应与ModelBehavior兼容,cakephp,cakephp-2.3,cakedc,Cakephp,Cakephp 2.3,Cakedc,我得到以下错误: 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] 我遵循了本网站上的教程: 当我导入我的CSV文件时,它会显示以下flash消

我得到以下错误:

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]
我遵循了本网站上的教程:

当我导入我的CSV文件时,它会显示以下flash消息:

Successfully imported 0 records from Book1.csv
我不明白为什么它不导入,它是否与它给出的错误/警告有关

我查看了行为内部(第20行的CsvImportBehavior.php):
类CsvImportBehavior扩展了ModelBehavior{


这在第20行没有意义,那只是类声明,所以我向下看代码,看到了以下内容:
公共函数设置(Model&$Model,$settings=array()){
——在我看来,这似乎符合标准。

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

  • 删除
    &
    之前的
    $Model
    (不需要,因为Model是一个对象,因此已通过byref传递)
可选(请参见@mark的评论):

  • $Model
    重命名为
    $Model
    (小写)

  • $settings
    重命名为
    $config

我不知道为什么不从CSV导入记录,这需要您进行调试

选择 CakePHP还有一个
CSV数据源
,作为数据源插件的一部分

使用此功能,您可以创建一个模型,该模型不使用数据库,而是使用CSV文件作为其源

 $csvData = $this->MyCsvModel->find('all');
这将返回CSV文件中的所有行。通过将
$csvData
保存到另一个模型,将其导入数据库将很容易实现

链接:


变量的命名是不相关的。只要删除
&
IMO就足够了。@mark谢谢,我没有在我的计算机后面,也不确定它是否也要求参数名与严格模式下的兼容签名相匹配(我个人讨厌变量名不一致,尤其是
{@inheritdoc}
在你的PhpDoc中没有任何意义)。我会更新我的答案你是对的。这都是关于一致性的。只需说:)@mark Guess我比php严格。我将提交一个功能请求来添加php狂热严格模式:DHi伙计们,我删除了&before$模型,并删除了警告。非常感谢。