2014-11-08 1 views
1

피벗 테이블에 추가 열이 있으며 액세스해야합니다.Laravel - 피벗 테이블 내에서 추가 열 데이터에 액세스하십시오.

스키마 :

Schema::create('alert_criteria', function(Blueprint $table) 
{ 
    $table->increments('id'); 
    $table->integer('alert_id')->unsigned()->index(); 
    $table->foreign('alert_id')->references('id')->on('alerts')->onDelete('cascade'); 
    $table->integer('criteria_id')->unsigned()->index(); 
    $table->foreign('criteria_id')->references('id')->on('criterias')->onDelete('cascade'); 
    $table->integer('viewed'); 
    $table->timestamps(); 
}); 

기준 모달

public function alerts() 
{ 
    return $this->belongsToMany('Alert')->withPivot('viewed')->withTimestamps(); 
} 

컨트롤러

public function getMatches() 
{ 
    $matches = Criteria::find(Auth::user()->id) 
    ->alerts() 
    ->get(); 
} 

보기 :

@foreach($matches as $match) 
    <td>{{$match->viewed}}</td> 
    @endforeach 

뷰는 오류를 반환하지 않고 그냥 아무것도 표시되지 않습니다. '열어 본 열'은 단지 1 또는 0입니다.

미리 감사드립니다. 당신이 내`기준 내에서 pivot 재산

@foreach($matches as $match) 
    <td>{{$match->pivot->viewed}}</td> 
@endforeach 

Reference

답변

3

추가 피벗 테이블 열이 관계 선언이 추가 액세스하려면 `모델, 공공 기능 경고()가 있습니다. \t { \t \t return $ this-> belongsToMany ('Alert') -> withPivot ('viewed') -> withTimestamps(); \t}`그러나 여전히 값을 반환하지 않습니까?
+0

를 사용할 필요가

public function alerts(){ return $this->belongsToMany('Alert')->withPivot('viewed'); } 

는 다음에 액세스하려면 : – Ben

+0

죄송합니다. 액세스하는 방법을 추가하는 것을 잊었습니다. 답변이 업데이트되었습니다. – lukasgeiter

+0

감사합니다 @lukasgeiter, 그것은 완벽하게 작동합니다. – Ben

관련 문제