2014-07-09 2 views
0

Laravel에서 모델 간의 관계에 대해 머리를 쓰려고합니다.Laravel multiple relationships

나는 다음과 같은 모델 사이의 관계를 정의하고 싶습니다 :
사용자 - 사용자
캠페인 - 캠페인
전화 - 전화
리드 - 리드/클라이언트
판매 - 판매를
약속 - 예정된 전화 통화.

사용자가 많은 캠페인에 할당 할 수 있습니다 :

이 관계가 있어야하는 방법입니다.
사용자는 많은 전화를 걸 수 있습니다.
한 명의 사용자가 많은 약속을 가질 수 있습니다.
하나의 통화가 하나의 사용자에게 속합니다.
하나의 통화가 하나의 캠페인에 속합니다.
캠페인에 여러 번 전화를 걸 수 있습니다.
캠페인에 많은 매출이있을 수 있습니다.
리드를 많은 캠페인에 할당 할 수 있습니다.
리드가 다수의 매출을 올릴 수 있습니다.
하나의 리드가 한 캠페인에 속합니다.
한 리드
한 판매
한 약속 한 리드에 속한 한 사용자에게 하나 개의 캠페인
한 판매 속한에 속하는 많은 통화를 할 수 있습니다.

관계를 설정하는 방법에 대해 확실하지 않습니다. 일대일 또는 다 대일로 간편하게 사용할 수 있습니다. 이것에 대해
그러나 :
콜 -> 사용자 (일대일)
콜 -> 캠페인 (일대일)
캠페인 -> 통화 (일대)를
사용자 - > 전화 (일대 다수)


나는 분명히 충분히 설명 할 수 있었으면 좋겠다. 감사.

+0

DDD의 집계에 대해 읽으십시오 –

답변

0

Laravel docs on relationships을 다시 읽는 것이 좋습니다. 이 많은 관계로 명확 하나입니다

User --------> Call 
(one)   (many) 

: 예를 들어 통화/사용자 관계를 촬영

, 여기 당신이보고있는 것입니다.

이 용어는 라는 제목의 섹션에서 문서에서 직접 촬영
A User hasMany Calls 

A Call belongsTo a User 

한 많은 사람 : 당신이 설득력 모델의 관점에서이 관계의 양쪽을 설정하려는 경우에, 관계는이 있습니다.

코드에서 ...(- $user->Calls를 사용하여 항목의 경우 컬렉션을 반환하기 때문에이 내 마음대로, 내가이 메소드 이름의 복수를했습니다 통지)

사용자 모델

public function Calls() 
{ 
    $this->hasMany("Call"); 
} 

.

전화 모델

public function User() 
{ 
    $this->belongsTo("User"); 
} 

오히려 당신이 분석에서 수행 한 것으로, 분리의 관계의 두 측면을 가지고보다 같은 시간에 관계 양쪽을 고려하십시오.

+0

안녕하세요 @Kryten, 답장을 보내 주셔서 감사합니다. 당신의 대답은 이미 문서에서 얻은 것입니다. 이제 사용자와 통화간에 일대 다 관계가 있습니다. 이제 Campaign과 Call간에 관계를 만들어야하지만 사용자와 통화 간의 관계는 유지해야합니다. 그렇게하는 방법? – denn