2014-11-27 3 views
0

나는 궁금해합니다.하지만 다소 혼란 스럽습니다.다른 모델과 관련된 Laravel 및 피벗 테이블

나는 사용자와 그룹 테이블 사이의 많은 관계뿐만 아니라 모든 적절한 모델에 속한다.

하지만 모든 사용자가 학생이 아니기 때문에 테이블 학생도 있습니다. 따라서 학생 테이블은 user_id 필드를 유지 관리합니다.

제 질문은 : 피봇 테이블 "group_user"를 학생과 그룹 모델 간의 관계에 사용할 수 있습니까? 학생 테이블에 "user_id"필드가 있습니까? 그리고 어떻게?

나는

public function students() 
{ 
return $this->belongsToMany('Student','group_user','group_id','user_id'); 
{ 

같은 시도하지만 난 길을 어떻게 students.id 취할하지만 students.user_id을하지 웅변 말할 표시되지 않습니다 ???

+0

아니, 당신은 쉽게 그렇게 할 수 없습니다. 'BelongsToMany'와 모델에 대한 몇 가지 메소드를 오버라이드해야하므로 그렇게하지 않을 것입니다. 노력할만한 가치가 없습니다. –

+0

그 외 무엇이 도움이 될 수 있습니까? 어떻게 그 사용자를 쉽게 가져올 수 있습니까? 어떤 생각? – mariotanenbaum

+0

피벗 테이블을 사용할 수 있는지 질문 했으므로 원하는 사용자가 무엇인지 알 수 없습니다. 질문을 수정하고 정확하게 말하십시오. –

답변

1

가정이 관계 : 당신은 쉽게 할 수

Subject belongsTo Group 
Group belongsToMany User 
User hasOne Student 

는 :

$subject = Subject::find($someId); 
// of course for multiple subject use eager loading: 
// $subjects = Subject::with('group.users.student')->get(); 

$users = $subject->group->users; // related users 

foreach ($users as $user) 
{ 
    $user->student; // null|student model 
} 
+0

여기 내가 가지고있는 것은 ... 그게 : ??? 클래스 제목 확장 \ Eloquent {protected $ fillable = []; 클래스 사용자 확장 Eloquent implements UserInterface, RemindableInterface {\t public function student() {return $ this> hasOne ('Student');} () {return $ this-> belongsTo ('Group'); 클래스 그룹 확장 \ Eloquent {\t public function users() {return $ this-> belongsToMany ('User'); \t} – mariotanenbaum

+0

예, 그게 전부입니다. –

+0

예를 들어, 나는 또한 학생의 ID가 필요하다 : ( – mariotanenbaum

관련 문제