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

时间:2013-07-13 10:11:29

标签: php cakephp cakephp-2.0

beforeSave()回调中的

我取消了一个字段:

unset($this->data['Company']['myField']);

然后,在我的公司控制器中,如果我这样做:

保存()

debug($this->request->data)

我仍然看到我在模型中未设置的字段。

似乎更改只影响模型范围,而不影响控制器。

如何更新我的$this->request->data作为模型中的数据?

感谢

1 个答案:

答案 0 :(得分:2)

这是基本的OOP。如果你不传递对象(但是数据数组),你不能 - 本身 - 期望通过引用传递。 因此,修改模型中的数据也不能改变请求对象中的数据。通过后,他们是独立的。

如果由于某种原因需要更新请求对象,则需要再次提取数据:

if ($this->Model->save($this->request->data)) {
    // redirect on success?
}
$this->request->data = $this->Model->data;