Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未定义索引“;“计数器缓存”;CakePHP_Php_Cakephp_Methods_Model - Fatal编程技术网

未定义索引“;“计数器缓存”;CakePHP

未定义索引“;“计数器缓存”;CakePHP,php,cakephp,methods,model,Php,Cakephp,Methods,Model,我正在为一个项目做一个简单的任务。 它按预期工作,但在(第二个if)之后,当我在联系人模型上使用find方法时,它会抛出一个通知:未定义索引“counterCache”。我想修复此通知,以防止将来的崩溃。 我知道我的代码很凌乱,没有完美地实现(我必须更新模型,我不能改变一切连接的方式) 我读过CakePHP的API手册,但似乎不明白发生了什么。我如何解决此通知 注意: Notice (8): Undefined index: counterCache [CORE/Cake/Model/Model

我正在为一个项目做一个简单的任务。 它按预期工作,但在(第二个if)之后,当我在联系人模型上使用find方法时,它会抛出一个通知:
未定义索引“counterCache”
。我想修复此通知,以防止将来的崩溃。 我知道我的代码很凌乱,没有完美地实现(我必须更新模型,我不能改变一切连接的方式)

我读过CakePHP的API手册,但似乎不明白发生了什么。我如何解决此通知

注意:

Notice (8): Undefined index: counterCache [CORE/Cake/Model/Model.php, line 2109]
Notice (8): Undefined index: counterCache [CORE/Cake/Model/Model.php, line 2109]
代码:

更新(固定): 当我重新阅读文档时,解决方案变得非常简单。但是,我仍然不知道为什么会这样,我想知道为什么。如果有人能回答这个问题,我将永远感激

原件:

$this->Contact->belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'user_id'
));
修正:


您错误地设置了关联,仅应在构造时初始化模型之前使用模型属性

在这一点之后,您应该使用,否则关联将缺少默认选项,例如
计数器缓存
,这可能会导致您遇到的错误

$this->Contact->bindModel(
    array(
        'belongsTo' => array(
            'User' => array(
                'className' => '...',
                'foreignKey' => '...',
                // ...
            )
        )
    ),
    false
);

另请参见

以后,请不要在图像中发布错误消息(或任何文本)——它们无法搜索。此外,请始终提及您的确切CakePHP版本!如果不能弄清楚错误是指什么,人们将很难帮助你。
$this->Contact->belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'user_id',
        'counterCache' => false
));
$this->Contact->bindModel(
    array(
        'belongsTo' => array(
            'User' => array(
                'className' => '...',
                'foreignKey' => '...',
                // ...
            )
        )
    ),
    false
);