2010-06-01 6 views
0

그래서 두 모델이 있습니다. 사용자 및 그룹. 각 그룹에는 작성자로 사용자가 있고 그룹에는 많은 사용자가 있습니다. 이 테이블의 FK는 올바르게 설정되어 있지만, 관련된 모든 FK 오브젝트를 다른 오브젝트에서 가져 오는 더 쉬운 방법이 있는지 궁금합니다. 예를 들어, 그룹 객체의 경우 생성자의 사용자 객체를 가져 오는 내장 메소드가 있습니까? 또는 사용자가 속한 모든 그룹 객체를 가져올 수있는 메소드가 내장되어 있습니까? 심포니 페이지의 문서를 통해이 작업을 수행하는 방법을 찾을 수 없었습니다. 내가 본 것에서 볼 때 현재 객체 ID를 사용하여 적절한 테이블에 액세스하기 위해 메소드를 작성하고 교리를 사용해야하는 것처럼 느껴진다.외래 키가있는 Symfony 모델

감사합니다.

일부 샘플 스키마 :

Group: 
    actAs: { Timestampable: ~ } 
    columns: 
    name: { type: string(500), notnull: true } 
    image: { type: string(255) } 
    type: { type: string(255), notnull: true } 
    created_by_id: { type: integer } 
    relations: 
    User: { onDelete: SET NULL, class: User, local: created_by_id, foreign: id, foreignAlias: groups_created } 

답변

4

당신은 괜찮은 대답을 우리에게 코드를 표시해야하지만, 아래처럼 뭔가를 할 것이다.

YAML :

Group: 
    columns: 
     .......... 
     creator_id:  { type: integer(4), notnull: true } 
    relations: 
     Creator:  { class: User, local: creator_id, foreign: id } 

PHP :

$user = $group->getCreator(); 
+0

감사합니다! 이러한 "마법"방법을 사용하는 방법을 설명하는 문서의 일부가 있습니까? 또한 내가 전화하는 방법을 바꾸고 싶다면 어떻게 될까? getCreatedBy() 대신에. 내가 별칭을 만들거나 그것을 감싼 다른 게터 메서드를 만들까요? 다시 한 번 감사드립니다! – Danny

+2

http://www.symfony-project.org/jobeet/1_4/Doctrine/en/03 및 http://www.symfony-project.org/jobeet/1_4/Doctrine/en/06 –

+0

죄송합니다. 다시. $ this-> getCreatedBy()를 수행하여 작성자에 액세스하려고 시도하고 있는데 작동하지 않습니다. 어떤 아이디어? – Danny

관련 문제