cakephp中的完整性约束冲突

cakephp中的完整性约束冲突,cakephp,Cakephp,我已经用复合主键创建了表,但在编辑时在cakephp中给出了完整性约束冲突错误 完整性约束冲突:保存模型的复合主键数据时出现1062个重复条目 违反完整性约束意味着您试图在数据库中保存唯一值的副本。主键必须是唯一的 数据库中的主键字段是否设置为自动递增?如果你不这样做,那可能是你的问题 否则,当您插入一条记录时,它可能会插入一个PK为0的行。然后,当它尝试插入另一条记录时,它将尝试插入另一个PK为0的行,因此不是唯一的,并抛出完整性约束冲突 但是 您提到您正在进行编辑。如果正在进行编辑,则在将已

我已经用复合主键创建了表,但在编辑时在cakephp中给出了完整性约束冲突错误


完整性约束冲突:保存模型的复合主键数据时出现1062个重复条目


违反完整性约束意味着您试图在数据库中保存唯一值的副本。主键必须是唯一的

数据库中的主键字段是否设置为自动递增?如果你不这样做,那可能是你的问题

否则,当您插入一条记录时,它可能会插入一个PK为0的行。然后,当它尝试插入另一条记录时,它将尝试插入另一个PK为0的行,因此不是唯一的,并抛出完整性约束冲突

但是

您提到您正在进行编辑。如果正在进行编辑,则在将已编辑行主键保存到数据库时,不会传递该主键,因此cake会尝试执行创建,从而导致另一个重复的行ID

请确保执行以下操作:

$this->Model->id = $id; // Where $id is the Primary Key of the row being edited.
相反,您也可以这样做:

$data['Model']['id'] = $id;
$this->Model->save($data);
您可以通过将$id存储为编辑表单中的隐藏字段或传递给操作的URL参数来捕获它