Symfony无法执行Doctrine Schema更新

 天之道 发布于 2023-02-09 10:11

我遇到了运行doctrine:schema:update --force的问题,原因是forgeign键约束问题.

 [Doctrine\DBAL\DBALException] An exception occurred while executing 'ALTER TABLE Product ADD CONSTRAINT FK_1CF73D312ADD6D8C FOREIGN KEY (supplier_id) REFERENCES Supplier (id) ON DELETE SET NULL':                                                                                                                   

 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`wic_dev`.`#sql-5c0 a_1a12`, CONSTRAINT `FK_1CF73D312ADD6D8C` FOREIGN KEY (`supplier_id`) REFERENCES `Supplier` (`id`) ON DELETE SET NULL)                        

 [PDOException] SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`wic_dev`.`#sql-5c0 a_1a12`, CONSTRAINT `FK_1CF73D312ADD6D8C` FOREIGN KEY (`supplier_id`) REFERENCES `Supplier` (`id`) ON DELETE SET NULL)

我有两个表创建此错误:产品和供应商.

产品可以有1个供应商,供应商可以有很多产品.

以下是我设置实体的方法:

产品实体:

 /**
 * @ORM\ManyToOne(targetEntity="WIC\SupplierBundle\Entity\Supplier", inversedBy="products", fetch="EAGER")
 * @ORM\JoinColumn(name="supplier_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
 * @Common\Versioned
 * @Assert\NotBlank(message="Supplier Cannot Be Blank")
 */
protected $supplier;

供应商实体

 /**
 * @ORM\OneToMany(targetEntity="WIC\ProductBundle\Entity\Product", mappedBy="supplier", cascade={"all"})
 */
protected $products;

我目前在每个表中都有数据.我知道有些产品缺少供应商,供应商缺少产品.

我做错了什么,如何解决这个问题?我需要运行此架构更新,以便我的其他表也将更新.

非常感谢你的帮助!

1 个回答
  • 以下是我解决问题的方法.在我的产品表中,如果找不到供应商,我将值存储为"0".因为它是两个表之间的多关系和onetomany关系,所以它之间存在冲突,因为supplier_id永远不会为0,0与供应商表中的任何id都不匹配.我不得不更新products表以将0的任何值设置为NULL,这使架构更新起作用.

    2023-02-09 10:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有