0

beforeSave()回调中,我取消了一个字段:

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

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

debug($this->request->data)保存()之后

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

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

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

谢谢

4

1 回答 1

2

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

如果您需要 - 出于某种原因 - 更新您的请求对象,您需要再次提取数据:

if ($this->Model->save($this->request->data)) {
    // redirect on success?
}
$this->request->data = $this->Model->data;
于 2013-07-13T10:19:28.773 回答