2011-01-14 4 views
1

나는 I18N 카테고리 테이블을 가지고 싶습니다. 나는 jobeet example을 따라 갔다.심포니 교리 i18n 행동 데이터로드 실패 : 무결성 제약 위반

아래의 스키마 및 설비 데이터.

./symfony doctrine:build --db --all-classes --and-migrate 
./symfony doctrine:data-load data/fixtures/category.yml 

나는 데이터가 오류 표시와 함께 데이터베이스와 빨간색 상자에 삽입되지 도착이 명령을 실행하면 : SQLSTATE를 [23000] : 무결성 제약 조건 위반 : 키 'PRIMARY'에 대한 1062 중복 항목의 '1 등' 내가 수동으로 명령을 실행하면

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 

갓 내장에 : 데이터로드 작업에서 실행 얻을

쿼리 ("mysqld를 --log = 로그 파일"로 기록) 데이터 베이스. 위의 3에서 6까지의 쿼리는 잘 실행되고 데이터를 삽입합니다. 검색어 nr. 7은 데이터를 출력하지 않고 nr을 조회합니다. 8은 실패한 것입니다. (id 1이 이미 있으므로 6 단계에서 삽입했기 때문에).

문제는 쿼리 nr에 있어야합니다. 7. "k.lang = 'et_EE'"나는 'et'이어야한다고 확신합니까? 왜 검색어 nr. 7은 쿼리 nr과 정확히 같습니다. 5 그러나 값이 없거나 엉망이 되었습니까?

나는 worng했거나 버그입니까?

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) } 

데이터/비품/category.yml

 
myCategory: 
    category-1: 
    gender: female 
    position: '1' 
    Translation: 
     et: 
     name: 'Name value' 
     seeking_label: 'Label value' 
     seeking: 'Value' 

답변

1

있어 용액 : 정렬 가능한 행동 I18N 잘 혼합되지 않는다.

3 일간의 디버깅을 저장하려면 "csDoctrineActAsSortablePlugin"동작을 I18n 동작과 함께 사용하지 마십시오.

지금은 정렬 지원을 중단하겠습니다. I18n에서 작동하는 Sortable bahavior에 대한 모든 권장 사항을 환영합니다.

0

이것은 I18n 클래스를 식별하는 데 사용되는 새로운 Doctrine 탐색기 : ID 열은 autoincrement로 설정해야하지만이 고유 한 제약 조건은 변환 테이블로 확장되므로 조명이 고유하지 않으므로 조명기구가 예상했다. 예에서

:

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 자동 증가 및 순 같은 경우,이 지그 삽입 실패. 따라서 자동 증가 필드에서 고유하게 사용하지 마십시오. 변환 테이블의 키로 사용됩니다 (I18n 동작).

관련 문제