2012-07-31 1 views
1

여기에 상황이 있습니다 : 저는 Symfony2를 처음 접했고 그것에 대해 좋아하지만 Doctrine CRUD 생성기. YAML 파일에서 Doctrine으로 엔티티를 생성했지만 doctrine : CREDD 커맨드 라인으로 CRUD를 생성 할 수 없습니다.Doctrine 2 CRUD 생성기와 ID가 "id"가 아닌 식별자의 문제점

문제 : 내가 'ID'필드와 getId() 메소드를 설정해야 할 어떤 이유 하지만 종류의 I 클래스 다이어그램과 관계 스키마에서 수행 한 모든 작업을 유적 ...

내 질문 : 필드 이름을 그대로 유지하고 Doctrine에 내 CRUD를 계속 생성하는 방법이 있습니까?

YAML 예 :이와 붙어있어

XXX\XXXBundle\Entity\Utilisateur: 
type: entity 
table: utilisateur 
id: 
    pseudo: 
    type: string 
fields: 
    nom: 
    type: string 

... 나는 그것을 변경 시도했다 :

XXX\XXXBundle\Entity\Utilisateur: 
type: entity 
table: utilisateur 
fields: 
    pseudo: # Le pseudo correspond au nom affiché pour identifier un utilisateur. 
    type: string 
    id: true 

하지만 난 항상 결국 어떤 일을 변경하지 않습니다 갖는 :

[RuntimeException]                      
The CRUD generator expects the entity object has a primary key field named "id" with a getId() method. 

누군가 조금 도와 줄 수 있다면 정말 고마워! 최악의 시나리오 자동 생성 된 정수로 바보 ID 필드를 추가하기 위해 모든 엔티티를 수정해야합니다 ...

답변

0

아니요, 불가능합니다. 71 - 라인 69 https://github.com/sensio/SensioGeneratorBundle/issues/57

그것은 DoctrineCrudGenerator.php에 하드 코딩 : 어쨌든

if (!in_array('id', $metadata->identifier)) { 
    throw new \RuntimeException('The CRUD generator expects the entity object has a primary key field named "id" with a getId() method.'); 
} 
내가 다른 대답을 기대했다
+0

... 감사

이미 변경 요청이 있습니다! –