2015-01-05 3 views
0

User 모델에서 where 절을 만들어서 Group 특수한 사용자 만 얻으려고합니다.Where 절에서 관계

테이블이 group_user인데, 이는 다 대다 테이블입니다.

그룹이 Admin 인 모든 사용자를 내 보내야합니다.

어떻게 Eloquent Relationship 방법을 사용하여 필터링 할 수 있습니까?

답변

1

whereHas 메서드를 사용하여 관계를 쿼리 할 수 ​​있습니다.

User::whereHas('group', function($query){ 
    $query->where('name', 'Admin'); 
})->get(); 

이렇게하면 Admin과 관련된 그룹이있는 사용자 만 반환됩니다.

참고 사항 : 사용자 모델 내의 그룹과 관계를 그룹의 관계 이름으로 이미 설정했다고 가정합니다.

관계를 설정하려면 사용자 모델에서 다음을 사용하십시오. here 더 이동에 대한

public function group(){ 
    return $this->belongsToMany('Group', 'group_user', 'user_id', 'group_id'); 
} 

.

관련 문제