我想要 I18N 类别表。我关注了jobeet example .
下面的架构和固定数据。
./symfony doctrine:build --db --all-classes --and-migrate
./symfony doctrine:data-load data/fixtures/category.yml
当我运行这些命令时,没有数据被插入到数据库中,并显示失败的红框:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-et' for key 'PRIMARY'
在数据加载任务上执行的查询(使用“mysqld --log=logfile”记录):
1 Query DELETE FROM my_category
2 Query START TRANSACTION
3 Query SELECT k.id AS k__id, k.position AS k__position FROM my_category k ORDER BY k.position desc LIMIT 1
4 Query INSERT INTO my_category (gender, position, created_at, updated_at) VALUES ('female', '1', '2011-01-14 12:33:05', '2011-01-14 12:33:05')
5 Query SELECT k.id AS k__id, k.lang AS k__lang, k.slug AS k__slug FROM my_category_translation k WHERE (k.slug LIKE 'name-value%' AND k.lang = 'et' AND k.name = 'Name value')
6 Query INSERT INTO my_category_translation (id, lang, name, seeking_label, seeking, slug) VALUES ('1', 'et', 'Name value', 'Label value', 'Value', 'name-value')
7 Query SELECT k.id AS k__id, k.lang AS k__lang, k.slug AS k__slug FROM my_category_translation k WHERE (k.slug LIKE '%' AND k.lang = 'et_EE' AND k.name IS NULL)
8 Query INSERT INTO my_category_translation (id, lang, slug) VALUES ('1', 'et_EE', '')
9 Query rollback
10 Quit
当我在新构建的数据库上手动运行这些命令时。上面 3 到 6 的查询运行良好并插入数据。 查询编号7 不输出数据和查询nr。 8是失败的。 (因为id 1已经存在,在第6步插入)。
问题一定在查询 nr 中。 7. "k.lang = 'et_EE'"我很确定它应该是 'et'? 为什么查询nr。 7 is neccessary 似乎与查询 nr 完全一样。 5 但没有和/或搞乱了值(value)观?
我遇到了什么问题还是错误?
架构.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) }
数据/fixtures/category.yml
myCategory: category-1: gender: female position: '1' Translation: et: name: 'Name value' seeking_label: 'Label value' seeking: 'Value'
最佳答案
默认情况下,i18n 表中 culture 字段的长度为 2。 如果要使用长文化代码,则必须将其更改为 5。否则,“et_EE”将被截断为“et”。
I18n:
fields: [name, seeking_label, seeking]
length: 5
参见:http://www.doctrine-project.org/documentation/manual/1_0/en/behaviors#core-behaviors:i18n
关于php - Symfony Doctrine i18n 行为数据加载失败 : Integrity constraint violation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4690681/