我试图更新 cakePHP 2.3.1 中的一行。我有类测试扩展 AppModel 与 $validates 数组,以及控制器(简化):
public function editstudent() {
if($this->request->data) {
$this->Test->stuId= $this->data['Test']['stuId'];
if ($this->Test->save($this->request->data)) {
$this->set('state',1);
}
}
书上说:
创建或更新由模型的 id 字段控制。如果设置了 $Model->id,则更新具有此主键的记录。否则会创建一个新记录:
如上所述,我设置了 $this->Test->StuId 但是当我提交表单时它仍然显示:
错误:SQLSTATE [23000]:违反完整性约束:1062 键“PRIMARY”的重复条目“” SQL 查询:INSERT INTO ........
如错误所示,查询仍然是 INSERT 而不是 UPDATE 那么我需要做些什么来更新,请帮帮我:(
编辑:@thaJeztah 我已经像这样编辑了我的视图:
class Test extends AppModel {
var $name= 'Test';
var $primaryKey= 'stuId';
public $validate= array(.......);
}
但它仍然显示同样的问题
数据库错误错误:SQLSTATE [23000]:完整性约束违规:1062 键 'PRIMARY' SQL 查询的重复条目 '':INSERT INTO
cakePhp
。tests
(stuName
,stuDoB
,stuAdd
) 价值观 ('Đào Đức Anh', '2013-03-25', 'Kim Liên')
如您所见,查询仍然是插入而不是更新,您能帮我解释为什么仍然会发生这种情况:(