我是 CakePHP 的新手,当我使用 create 函数添加新行时出现此错误:
完整性约束违规:1062 键 'PRIMARY' 的重复条目 '0-0'
每当我使用 Formhelper 保存新数据时,Profile.id 都会设置为 0,但已经有一行具有该 id。User.id 和 profile.id 都设置为自动递增。
我的问题是:如何使用下一个可用的 id 保存数据?
这是模型:
class Profile extends AppModel {
public $name='Profile';
public $belongsTo='User';
}
这是控制器中的 add() 函数:
public function add() {
$this->set('title_for_layout', 'Add Profiles');
if ($this->request->is('post')) {
$this->Profile->create();
if ($this->Profile->save($this->request->data)) {
$this->Session->setFlash(__('You added a user.'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Unable to add user.'));
}
}
这是视图:
<?php
echo $this->Form->create('Profile');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('dob', array(
'dateFormat'=>'DMY',
'minYear' => date('Y')- 1900,
'maxYear' => date('Y')- 2013));
echo $this->Form->end('Save Profile');
?>
----编辑 2013 年 10 月 20 日----
数据库架构:
CREATE TABLE `profiles` (
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`firstname` text NOT NULL,
`lastname` text NOT NULL,
`dob` date NOT NULL,
`pob` varchar(100) NOT NULL,
`greatest_acc` varchar(500) NOT NULL,
`fav_food` varchar(200) NOT NULL,
PRIMARY KEY (`id`,`user_id`),
UNIQUE KEY `id` (`id`,`user_id`),
KEY `userid` (`user_id`),
KEY `userid_2` (`user_id`),
KEY `user_id` (`user_id`),
KEY `user_id_2` (`user_id`),
KEY `user_id_3` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;