2014-04-23 4 views
1

내가 가진 것 : 다른 사용자와 관련되었을 수있는 사용자가 있습니다. Sugarcrm Bean과 일대일 관계 로딩

은 '부모'또는 '리퍼러'를 좋아하지,하지만 "assistante"와 같은

는 그래서, 나는 사용자와 ... 사용자 간의 일대일 관계를 만들었습니다. 내 테이블 이름은 "users_users_1_c"입니다. 첫 번째 사용자 ID는 users_users_1users_idb에 저장되고 내 보조 사용자 ID는 users_users_1users_ida에 저장됩니다.

은 내가 원하는 무엇 :

나는 논리 후크를 작성해야하고, 그 일에, 나는 사용자가 assistante이있는 경우 가져올 수 있습니다.

내가 뭘하려 :

그래서, 내가

if($myUser->load_relationship('users'){ var_dump("Relationship!");die(); }

(물론, 관계의 이름을 변경하여) $myUser->load_relationship('users_users_1_c');$myUser->load_relationship->('users');

내가 아래의 코드를 모두 테스트를 시도

하지만 아무 일도 없었습니다.

나는 이것들을 읽고 이러한 솔루션을 테스트했지만, 그들은 하나가 작동하지 않았다 :

은 내가 아는 어떤

John Dope's get_related_bean links

Sugar's doc about fetching relationships

그래서, 제발, 당신은 저와 같은 모듈의 두 레코드 사이의 관계를로드하기 위해 일대일 관계를로드하는 방법을 말해 줄 수 있습니까? 아니면 순수 SQL을 사용하여 매우 더러워 보겠습니다 ... 그리고 그것은 수치 스럽습니다.

고맙습니다.

+0

"_c"가 관계 이름에 사용 된 것인지 잘 모르겠습니다. 따라서 load_relationship ('users_users_1')을 사용해보세요. – MartinTawse

답변

1

당신은 Link 클래스의 getBeans() 메소드를 사용하고 있다고 생각합니다. 다음과 같이 작동

$myUser->load_relationship('users_users_1_c'); 
$user_list = $myUser->users_users_1_c->getBeans(); 
foreach($user_list as $user){ 
    // handle $user that you found 
} 

대안 속기 :

$myUser->load_relationship('users_users_1_c'); 
foreach($myUser->users_users_1_c->getBeans() as $user){ 
    // handle $user that you found 
} 

이 모든 users_users_1_c이 관계의 정확한 이름이라고 가정합니다. 확인하거나 다시 확인하려면 /custom/modules/Users/Ext/Vardefs/vardefs.ext.php를보고 다른 관계 이름을보십시오.