我在保存编辑过的数据时遇到错误。实际上用户点击了编辑按钮当用户想要保存编辑的数据时,用户被重定向到编辑数据页面(编辑数据)后,用户想要保存编辑的数据cakephp给出了错误sql完整性违规代码1062.编辑代码是默认代码由蛋糕烘烤。代码是
public function edit($id = null) {
if (!$this->User->exists($id)) {
throw new NotFoundException(__('Invalid user'));
}
if ($this->request->is('post') || $this->request->is('put')) {
if ($this->User->save($this->request->data)) {
$this->Session->setFlash(__('The user has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
}
} else {
$options = array('conditions' => array('User.' . $this->User->primaryKey => $id));
$this->request->data = $this->User->find('first', $options);
}
}
我也尝试过savefield而不是save,但是添加了所有空字段的新用户。
答案 0 :(得分:0)
在保存之前,您应该在用户上设置id属性:
$this->User->id = $id;
或者确保在$this->request->data;
中,您正在编辑的对象的ID存在,$this->request->data['User']['id'];
在此特定情况下,请求数据上缺少用户ID导致问题