如何解决在ModelBehavior中未检测到Controller的更改
我受命在大型 CakePHP 应用中进行一些更改,我正在尝试更改$this->data
中保存来自表单数据的值。
控制器
// $this->data['key'] is true coming from a form.
...
if(a) {
$this->data['key'] = false;
}
$this->Model->Calculate();
ModelBehavior
function calculate(&$Model) {
log($Model->data['key']);
}
// prints true;
我不明白为什么$Model->data['key']
的值是true
,我的理解是$this->data
在 ModelBehavior中作为$Model
传递了。我想念什么?我是 PHP 和 CakePHP 的新手。
解决方法
通常,Model::data
由模型或Model::set()
的查找方法设置。
在调用计算之前,请在控制器中调用$this->ModelName->set($this->data)
。确保$this->data
的结构符合CakePHP约定。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。