2016-12-12 4 views
1

을 수 :Laravel 5.3 belongsToMany을 얻고 난 다음 모델이 피벗

class Polling extends Model 
{ 
    /** 
    * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany 
    */ 
    public function participants() 
    { 
     return $this->belongsToMany(Participant::class, 'participant_poll', 'poll_id'); 
    } 

    /** 
    * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany 
    */ 
    public function results() 
    { 
     return $this->belongsToMany(Participant::class, 'poll_results', 'poll_id'); 
    } 
} 

class Participant extends Model 
{ 
    public function polls() 
    { 
     return $this->belongsToMany(Polling::class); 
    } 

    public function results() 
    { 
     return $this->belongsToMany(Polling::class); 
    } 

} 

poll_results - 피벗 테이블 구조를 가지고 : 아이디, poll_id, participant_id을. 피벗 테이블을 poll_results를 얻을

 
№|participant.name|Count vote| 
1|Mike   |15  | 
2|................|10  | 
.............................. 

카운트 투표 : 나는 다음 테이블을 볼 필요가있다. 도움말을 작성하십시오.

$poll = Polling::first(); 
$poll->participants()->get(); 

답변

0

withCount() 메서드를 사용할 수 있습니다.

당신은 실제로 당신이 당신의 결과 모델

귀하의 질의에 {관련} _count 열을 배치 할 withCount 방법을 사용할 수 있습니다를로드하지 않고 관계 결과의 수를 계산하려면 이 반환 participan polls_count

+0

라는 결과

Participant::withCount('polls')->get(); 

이 추가됩니다 새 속성이 하나처럼 보일 것이다 ts count (참여자 테이블 가져 오기). 열 개수 투표 - poll_results 테이블에서 가져와야합니다. –