Php Symfony条令i18n行为数据加载失败:完整性约束冲突
我想要有I18N分类表。我一直在关注这个问题 架构和设备数据如下Php Symfony条令i18n行为数据加载失败:完整性约束冲突,php,mysql,symfony1,doctrine,mysql-error-1062,Php,Mysql,Symfony1,Doctrine,Mysql Error 1062,我想要有I18N分类表。我一直在关注这个问题 架构和设备数据如下 ./symfony doctrine:build --db --all-classes --and-migrate ./symfony doctrine:data-load data/fixtures/category.yml 当我运行这些命令时,不会将任何数据插入数据库,红色框显示失败:SQLSTATE[23000]:完整性约束冲突:1062键“PRIMARY”的重复条目“1-et” 在数据加载任务上执行的查询(使用“mysq
./symfony doctrine:build --db --all-classes --and-migrate
./symfony doctrine:data-load data/fixtures/category.yml
当我运行这些命令时,不会将任何数据插入数据库,红色框显示失败:SQLSTATE[23000]:完整性约束冲突:1062键“PRIMARY”的重复条目“1-et”
在数据加载任务上执行的查询(使用“mysqld--log=logfile”记录):
当我在新构建的数据库上手动运行这些命令时。上面3到6的查询运行良好并插入数据。
7号查询不输出数据,8号查询失败。(因为id 1已经存在,请在步骤6中插入)
问题必须在查询7中。“k.lang='et_EE'”我很确定应该是'et'?
为什么第7条查询是必需的,看起来与第5条查询完全一样,但没有和/或混乱的值?
我得到的是虫子还是虫子
schema.yml
myCategory:
actAs:
Timestampable: ~
Sortable: ~
I18n:
fields: [name, seeking_label, seeking]
actAs:
Sluggable:
fields: [name]
uniqueBy: [lang, name]
builder: [mySluggableTranslit, urlize]
columns:
name: { type: string(255), notnull: true }
gender: { type: string(6) }
seeking_label: { type: string(255) }
seeking: { type: string(255) }
我的类别:
actAs:
时间标记:~
可排序:~
I18n:
字段:[名称、查找标签、查找]
actAs:
可插入式:
字段:[名称]
唯一联系人:[郎,姓名]
生成器:[mySluggableTranslit,urlize]
柱:
名称:{type:string(255),notnull:true}
性别:{type:string(6)}
正在查找_标签:{type:string(255)}
正在查找:{type:string(255)}
数据/装置/类别.yml
myCategory:
category-1:
gender: female
position: '1'
Translation:
et:
name: 'Name value'
seeking_label: 'Label value'
seeking: 'Value'
我的类别:
第1类:
性别:女
位置:“1”
翻译:
et:
名称:“名称值”
正在查找标签:“标签值”
追求:“价值”
得到了解决方案:可排序行为与I18n的混合不好 如果你想从3天的调试中解脱出来,那就不要混在一起 可排序的“CSDOCTRINEATASSORTABLEPlugin”行为与I18n行为
我现在就放弃可排序的支持。欢迎对使用I18n的可排序bahavior进行任何推荐 这可能有助于一些新的条令探索者:用于标识I18n类的ID列应设置为自动递增,但决不能设置为唯一,因为此唯一约束将扩展到转换表,因此夹具不会按预期插入 例如:
Gender:
female:
Translation:
en:
short_name: F
name: Female
es:
short_name: F
name: Femenino
male:
Translation:
en:
short_name: M
name: Male
es:
short_name: M
name: Masculino
如果性别表(类)的和id为autoincrement且唯一,则此夹具插入将失败。因此,不要在自动增量字段中使用unique,将其用作转换表中的键(I18n行为)。默认情况下,I18n表中区域性字段的长度为2。 如果要使用长区域性代码,必须将其更改为5。否则,“et_EE”将被截断为“et”
I18n:
fields: [name, seeking_label, seeking]
length: 5
见:
I18n:
fields: [name, seeking_label, seeking]
length: 5