Symfony 固定装置和多对多关系(学说)

Posted

技术标签:

【中文标题】Symfony 固定装置和多对多关系(学说)【英文标题】:Symfony fixture & many to many relationship (Doctrine) 【发布时间】:2010-12-13 13:20:11 【问题描述】:

我正在尝试在具有多对多关系的表上创建固定装置,但出现此错误:

SQLSTATE[23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败(bambinbazar.bambinbazar_category_articles,CONSTRAINT babi FOREIGN KEY(articles_id)参考bambinbazar_articles (id) 删除级联)

在我的夹具中:

BambinbazarArticles:  
 article_vetement:
  title:          bla bla
  BambinbazarCategory: [whateverCat]

在我的架构中:

relations:
  BambinbazarCategory: 
    class:BambinbazarCategory
    refClass: BambinbazarCategoryArticles
    local: category_id
    foreign: articles_id
    foreignAlias:  BambinbazarArticles

【问题讨论】:

【参考方案1】:

您必须首先使用夹具创建一个 BambinbazarCategory 对象(whatevercat 不引用任何内容,是吗?)

【讨论】:

【参考方案2】:

您需要以这样的顺序加载固定装置,即不会在数据库中存在“父”记录之前尝试创建“子”记录。当您一次加载所有固定装置时,它会创建非法的外键引用字段,因此会引发该错误。

也许有一些聪明的方法可以解决它,但我个人只是单独加载夹具,从父级开始,通过将夹具文件从夹具文件夹中取出,运行标准加载数据命令,将另一个夹具文件粘贴回,并重复该命令。

【讨论】:

以上是关于Symfony 固定装置和多对多关系(学说)的主要内容,如果未能解决你的问题,请参考以下文章

学说,多对多关系问题

如何判断一对一对多和多对多的关系

QueryDSL 和多对多关系

具有一对多和多对多关系的 JOOQ pojos

Symfony 查询生成器(多对多关系)

多表关系一对多和多对多