Php 为什么不在模型中设置数据不会影响控制器?
在beforeSave()回调中,我取消设置一个字段,执行以下操作:Php 为什么不在模型中设置数据不会影响控制器?,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,在beforeSave()回调中,我取消设置一个字段,执行以下操作: unset($this->data['Company']['myField']) 然后,在我的公司控制人中,如果我这样做: debug($this->request->data)在save()之后 我仍然可以看到我在模型中取消设置的字段 似乎更改只影响模型范围,而不影响控制器 如何将我的$this->request->data更新为模型中的数据 谢谢这是基本的面向对象编程。如果不传递对象(但传递数据数组),则不能期望按引用传递
unset($this->data['Company']['myField'])代码>
然后,在我的公司控制人中,如果我这样做:
debug($this->request->data)
在save()之后
我仍然可以看到我在模型中取消设置的字段
似乎更改只影响模型范围,而不影响控制器
如何将我的$this->request->data
更新为模型中的数据
谢谢这是基本的面向对象编程。如果不传递对象(但传递数据数组),则不能期望按引用传递。
因此,对模型中数据的修改也不能改变请求对象中的数据。你通过考试后,他们就独立了
如果出于某种原因需要更新请求对象,则需要再次提取数据:
if ($this->Model->save($this->request->data)) {
// redirect on success?
}
$this->request->data = $this->Model->data;