Php 为什么不在模型中设置数据不会影响控制器?

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更新为模型中的数据 谢谢这是基本的面向对象编程。如果不传递对象(但传递数据数组),则不能期望按引用传递

beforeSave()回调中,我取消设置一个字段,执行以下操作:

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;