2011-04-08 10 views
0

Doctrine Fixture에서 인라인으로 다 대다 관계를 정의하는 올바른 방법을 알고 싶습니다. 예를 들어 sfDoctrineGuardPlugin을 고려하십시오. 스키마는 내가 같은 고정 정의하고 있습니다 hereDoctrine : 조명기에서 다 대다 관계를 인라인으로 정의하십시오.

찾을 수 있습니다 : 나는 이미 sfGuardGroup 테이블에 두 그룹이 을, 그래서 GROUP_ID

sfGuardUser: 
    soc-sfUser-1: 
    first_name: Mrs 
    last_name: Balasubramanium 
    email_address: [email protected] 
    username: [email protected] 
    password: admin 
    Groups: [{group_id: 2}] 
    is_active: 1 

이 정확 참조 할? 당신은 또한 고정에 그룹을 정의하는 경우

답변

1

, 당신은 이름을 참조 할 수 있습니다 :

sfGuardGroup: 
    GroupAdmin: ... 
    GroupEditor: ... 

sfGuardUser: 
    ... 
    Groups: [GroupEditor] 

을 여러분이이 방법으로 작성해야 실제 ID를 지정하려면 :

sfGuardUser: 
    foo: 
    first_name:  Foo 
    last_name:  Bar 
    ... 
    sfGuardUserGroup: [{group_id: 2}] 

왜?

relations: 
    Groups: 
    ... 
    refClass: sfGuardUserGroup 

그것은 조금 까다 롭고 잘 교리에 설명 아니지만, 그것을 작동하는 것 같다 : 당신이 sfDoctrineGuardPlugin의 schema.yml 파일에서 살펴 경우에 당신은 sfGuardUser 관계에 refClass 속성을 볼 수 있습니다.

+0

예, 알고 있습니다. 그러나 내 그룹은 사용자 (로드 작업 또는 트랜잭션)와 같은 사용자 이전에로드되므로 정적 ID를 사용하는 그룹을 참조해야합니다. 어쨌든 고마워. – Prasad

+0

@Prasad 나는 해결책을 찾았다 고 생각한다. 적어도 내가 한 몇 가지 테스트에서는 저에게 효과적이었습니다. – elitalon

+0

감사합니다. 귀하의 첫 번째 회신, 희망 그룹 : [{이름 : 테스트 그룹}]도 작동합니다 – Prasad

관련 문제