2011-05-10 6 views
0

다른 테이블 'sf_guard_user'를 참조하는 필드가있는 조사 '설명'테이블이 있습니다. 내가 넣을 순간에심포니에서 ID가 아닌 외래 키 필드 가져 오기

<?php echo $investigationComment->getUserId() ?> 

외국 테이블 행의 id 값을 얻습니다. 나는 이름 필드 값을 얻을 수 있기를 원한다.

내 프로젝트의 다른 곳에서 getUserId() 및 put-> getName()에서 id를 생략 할 수 있었고 그 필드 값을 가져 왔지만 어떤 이유로이 작업을 수행하지 못했습니다. 외래 키 행의 이름 값을 얻으려면 어떻게해야합니까?

답변

5

먼저 관계 개체를 가져온 다음 해당 관계의 모든 속성을 호출하십시오.

<?php echo $comment->getUser()->getName() ?> 

이처럼 관련 별칭 '사용자'정의 경우는 작동이 :

//config.yml 
Comment: 
    relations: 
    sfGuardUser: 
     alias: User 
     foreignAlias: Comments 
     local: user_id 
     foreign: id 

또는

//config.yml 
Comment: 
    relations: 
    User: 
     class: sfGuardUser 
     foreignAlias: Comments 
     local: user_id 
     foreign: id 
+0

이것은 내 yaml 파일의 비트 형식입니다. 나는 어떤 단어가 의미하는지 알지 못한다! 관계가 언급 된 직후의 단어와 마찬가지로 테이블의 필드 이름입니까? 클래스, 로컬, 외국 및 foereignAlias와 동일합니다. 나는 'code'relations는 : 는 USER_ID : 클래스 : 지역 sfGuardUser : 그 위에서 이해가되지 않을 경우,이 코드를 넣어 어렵다 죄송합니다 – Nicola

+0

, 그것은 라인을 제거 comments'code' : ID foreignAlias ​​: 외국를 USER_ID space :(. – Nicola

+0

OK 이제 작동 중입니다. 감사합니다. – Nicola

0

이 작업을 수행하는 가장 쉬운 방법은 다음을 추가하는 것입니다 외국 단체 등급

public function __toString(){ 
    return $this->getAPropertyOnYourEntity(); 
} 

이제 ID를 반환하는 대신 엔티티는 __toString() 함수에서 원하는 모든 속성을 반환 할 수 있습니다.