php - 原则插入看不到外键字段

标签 php mysql symfony doctrine-orm

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/

相关文章:

java - 带有 MySQL 数据库的 spring-data-elasticsearch

symfony - monolog.logger.db 服务已被删除

php - 功能测试时如何配置Symfony 5服务参数?

Symfony 渲染 Controller 异常模板 ("")

PHP/MYSQL 通过 id "duplicate ids"查询

java - 在 PHP 中调用 Java 程序并获取输出

php changeint 到一定程度

php - 根据 'closest' 匹配 'earlier' 行替换当前行中的 NULL 值。 (基于日期的表格)

java - 无法在 mysql DB 中保留 1970 年以下的日期

php - Laravel 4 - 在运行时设置 database.fetch 配置