我发布了类似的问题,但无法解决。我创建了一个用户和组的关系数据库,但由于某种原因,我无法正确插入测试数据。以下是架构的示例:
User:
actAs: { Timestampable: ~ }
columns:
name: { type: string(255), notnull: true }
email: { type: string(255), notnull: true, unique: true }
nickname: { type: string(255), unique: true }
password: { type: string(300), notnull: true }
image: { type: string(255) }
Group:
actAs: { Timestampable: ~ }
columns:
name: { type: string(500), notnull: true }
image: { type: string(255) }
type: { type: string(255), notnull: true }
created_by_id: { type: integer }
relations:
User: { onDelete: SET NULL, class: User, local: created_by_id, foreign: id, foreignAlias: groups_created }
FanOf:
actAs: { Timestampable: ~ }
columns:
user_id: { type: integer, primary: true }
group_id: { type: integer, primary: true }
relations:
User: { onDelete: CASCADE, local: user_id, foreign: id, foreignAlias: fanhood }
Group: { onDelete: CASCADE, local: group_id, foreign: id, foreignAlias: fanhood }
这是我尝试输入的数据:
User:
user1:
name: Danny
email: comedy19@gmail.com
nickname: danny
password: f05050400c5e586fa6629ef497be
Group:
group1:
name: Mets
type: sports
FanOf:
fans1:
user_id: user1
group_id: group1
我一直收到这个错误:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`krowdd`.`fan_of`, CONSTRAINT `fan_of_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE)
用户和群组显然是在“粉丝”之前创建的,为什么我会收到此错误?
谢谢!
答案 0 :(得分:5)
在你的灯具文件中:
FanOf:
fans1:
user_id: user1
group_id: group1
应该是
FanOf:
fans1:
User: user1
Group: group1
使用user_id
和group_id
,Doctrine需要一个整数值。如果使用关系名称,则可以传递在夹具中其他位置创建的“对象”。