An exception occurred while executing 'INSERT INTO service (title, code, price, deleted) VALUES (?, ?, ?, ?)' with params ["asdf", "234", "234", 0]:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails
实体$serviceCategory
中还有一个字段,它引用service_category_id字段。
为什么它不在插入运算符中?
我认为它应该看起来像插入服务(标题,代码,价格,已删除,service_category_id)....
这是 yml orm:
Service:
type: entity
table: service
id:
id:
type: integer
generator: {strategy: AUTO}
fields:
title:
type: string
length: 255
code:
type: string
length: 50
price:
type: decimal
precision: 12
scale: 2
deleted:
type: boolean
ManyToOne:
serviceCategoryId:
targetEntity: ServiceCategory
joinColumn:
name: service_category_id
referencedColumnName: id
这是实体(仅 Prop ):
class Service {
/**
* @var integer
*/
protected $id;
/**
* @var string
*/
protected $title;
/**
* @var string
*/
protected $code;
/**
* @var integer
*/
protected $price;
/**
* @var boolean
*/
protected $deleted = false;
protected $serviceCategoryId;
}
最佳答案
正如您所说,“服务”表中还有一个引用另一个表的字段“serviceCategory”,因此您没有传递该字段的值。您必须传递该值的正确值,并确保传递的值必须是引用表主键值的值。
关于php - 原则插入看不到外键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23868581/