0

我在 cakephp 中更新用户数据时遇到问题。

当我提交表单时,我在 $this->data 中有这些数据:

Array
(
    [User] => Array
        (
            [first_name] => Dusan
            [last_name] => Stojanovic
            [native_language_id] => 25
        )
)

但是,当我尝试更新它时:

$this->User->id = $id;
$this->User->save($this->data)

由于验证,模型未保存。他们尝试验证 $this->data 数组中不存在的字段(如无效密码、电子邮件等)。如何解决此问题,以便仅更新 $this->data 数组中存在的字段?

4

2 回答 2

1

正确执行此操作,您应该将验证规则的on选项设置为createonly 和/或设置requirefalse.

对于快速修复,请提供$fieldlist您要保存的字段:

$this->User->save($this->data, true, array('first_name', 'last_name', 'native_language_id'));
于 2011-06-07T08:27:29.130 回答
0

你可以这样做:

$this->data['User']['id'] = $id

因为 ['id'] cakephp 将数组识别为将更新数据集并且不会创建新数据集的数据。

于 2011-06-07T08:54:33.847 回答