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