2009-12-30 6 views
1

저는 건물에있는 앱에서 소셜 네트워크와 같은 기능을 만들고 친구와 다른 친구를 연결하려고합니다.많은 클래스가 동일한 클래스에 많이 있습니다.

Friend: 
    connection: doctrine 
    tableName: friend 
    columns: 
    id: 
     type: integer(8) 
     primary: true 
     autoincrement: true 
    name: 
     type: string(75) 
     notnull: true 

가 어떻게 자신과 친구를 연결하는 많은 관계로 많은 만들려면 어떻게해야합니까 :

내가이 있다고 가정? 앞서 도움을 시간의

감사합니다 ..

답변

5

Use self-referencing equal nest relations. 워드 프로세서

:

평등 둥지 관계

평등 둥지 관계는 완전히 관계를 참조 클래스 내에서 자체에 대한 클래스 참조 및 열이 를 표현 적합 같은.

이것은 레코드를 가져 오는 관계가 기본 클래스 차 키 값을 갖는 참조 클래스 열에있는 중요하지 않음을 의미한다.

이전 단락은 이해하기가 어려우므로 을 이해하면 도움이됩니다. 우리는 많은 친구가 수있는 사용자라는 클래스를 정의합니다. 여기에 우리가 어떻게 '평등'옵션을 사용하는지 확인하십시오.

// 모델/User.php

class User extends BaseUser 
{ 
    public function setUp() 
    { 
     parent::setUp(); 

     // ... 

     $this->hasMany('User as Friends', array(
       'local' => 'user1', 
       'foreign' => 'user2', 
       'refClass' => 'FriendReference', 
       'equal' => true, 
      ) 
     ); 
    } 
} 
// models/FriendReference.php 
class FriendReference extends Doctrine_Record 
{ 
    public function setTableDefinition() 
    { 
     $this->hasColumn('user1', 'integer', null, array(
       'primary' => true 
      ) 
     ); 

     $this->hasColumn('user2', 'integer', null, array(
       'primary' => true 
      ) 
     ); 
    } 
} 

여기 YAML 포맷 같은 예이다. YAML에 대한 자세한 내용은 YAML Schema> Files 장을 참조하십시오.

관련 문제