2013-02-15 4 views
0

Symfony의 프로젝트 버전을 2.1에서 2.2 RC2로 업그레이드하고 2.1에 표시되지 않은 매핑 오류가 발생하기 시작했습니다. 내 전체 매핑 오류를 던질 것으로 보인다. 예가 있습니다.Symfony 2.2 RC2로 업그레이드하면 매핑 오류가 발생합니다

이들은 두 개의 항목입니다.

1.

MyBundle\Entity\Usuario: 
    type: entity 
    table: usuario 
    id: 
     id: 
      type: integer 
      generator: { strategy: AUTO } 
      column: co_usuario 
    fields: 
     [...] 
    oneToMany: 
     historicos: 
      targetEntity: Historico 
      mappedBy: id 
    [...] 

2.

MyBundle\Entity\Historico: 
    type: entity 
    table: historico 
    id: 
     id: 
      type: integer 
      generator: { strategy: AUTO } 
      column: co_historico 
    fields: 
     [...] 
    manyToOne: 
     coUsuario: 
      targetEntity: Usuario 
      inversedBy: historicos 
      joinColumn: 
       name: co_usuario 
       referencedColumnName: co_usuario 
     [...] 

그리고이 내가지고있어 오류입니다

협회 MyBundle \ 법인은 \ 사용자 선호도 # historicos이를 말한다 소유 사이드 필드 MyBundle \ Entity \ Historico # id는 연관으로 정의되지 않습니다.

연관 MyBundle \ Entity \ Usuario # historos는 이 아닌 소유 사이드 필드 MyBundle \ Entity \ Historico # id에 을 참조합니다.

내 이전 composer.json 교리의 다음 버전이 있었다 (모든 것이 잘 작동시킨 버전 2.1에서) : 심포니 2.2 RC2

[...] 
"doctrine/orm": ">=2.2.3,<2.4-dev", 
"doctrine/doctrine-bundle": "1.0.*", 
[...] 

그리고 교리의 이러한 버전과 함께 제공 :

[...] 
"doctrine/orm": "~2.2,>=2.2.3", 
"doctrine/doctrine-bundle": "1.2.*", 
[...] 

내가 뭘 잘못하고 있는지 모르겠지만, doctrine의 매핑 문서에서 볼 수있는 모든 것처럼 보입니다. 누군가가 올바른 방향으로 나를 가리킬 수 있다면 그것은 좋을 것입니다.

답변

2

유효성 검사 오류가 적절합니다.

아무 문제가 없습니다. 우리는 Doctrine의 런타임 유효성 검사기를 개선하여 메타 데이터가로드 될 때도 이러한 예외를 잡을 수있었습니다.

은 여기 YAML이 실제로 변경해야하는 방법은 다음과 같습니다

MyBundle\Entity\Usuario: 
    [...] 
    oneToMany: 
     historicos: 
      targetEntity: Historico 
      mappedBy: coUsuario 
    [...] 

나는 기본적으로 올바른 필드를 가리 키도록 oneToMany 협회 mappedBy 속성을 고정.