我正在尝试创建用户,但每次点击创建时,都会收到此错误:
CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`dcpcommunity`.`system_users`, CONSTRAINT `system_users_ibfk_1` FOREIGN KEY (`party_id`) REFERENCES `parties` (`id`)). The SQL statement executed was: INSERT INTO `system_users` (`status`, `date_modified`, `username`, `password`, `date_last_login`, `date_created`, `user_role`, `isLogin`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7)
我读到这个错误意味着我的表中没有'party_id',但我检查了三次,并且party_id作为我system_users表的主键存在。
我也看到它显示REFERENCES parties
并且我在模型中检查了引用部分并将其更改为我的表名,我仍然收到此错误。
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'party' => array(self::BELONGS_TO, 'system_users', 'party_id'),
);
}
修改
[system_users]
pk: party_id
username
password
date_last_login
status
date_created
date_modified
user_role
isLogin
有一个派对表,其中包含字段ID和party_type_id
修改
我检查了我的数据库,在我的system_users表中,我发现party_id与以下内容有关:
db.parties.id
如何在创建新记录时建立此关系?
答案 0 :(得分:1)
作为sql错误说明:REFERENCES party id ... parties是db中的一个表。 AR将寻找称为Party的AR模型,作为关系函数状态。 在AR模型中,“party”应该是使用表“party”的定义。 该错误来自db(架构)。 create动作尝试插入一个与system_users或party中的模式定义不对应的值。