我在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->数据数组中不存在的字段(如无效密码,电子邮件等)。我如何解决这个问题,以便我只能更新$ this->数据数组中的字段?
答案 0 :(得分:1)
要properly do this,您应该将验证规则“on
选项设置为仅create
和/或将require
设置为false
。
对于quickfix,请提供要保存的$fieldlist
个字段:
$this->User->save($this->data, true, array('first_name', 'last_name', 'native_language_id'));
答案 1 :(得分:0)
你可以这样做:
$this->data['User']['id'] = $id
因为['id'],cakephp将数组识别为将更新数据集并且不会创建新数据集的数据。