2014-11-17 3 views
1

나는 참석자, 메시지 및 attendee_message라는 세 개의 테이블을 가지고 있습니다. 사용자에게 표준화 된 메시지가 전송되면 참석자의 ID, 메시지의 ID 및 created_at 필드의 날짜/시간 스탬프를 사용하여 피봇 테이블 attendee_message에 레코드가 추가됩니다.Laravel 4의 피벗 테이블에서 created_at 표시

내 문제는 참석자와 메시지 테이블에 created_at라는 필드가 있고 메시지가 전송 된 날짜/시간 (attendee_message 열에서 created_at)을 표시하려고하면 메시지 테이블에서 created_at가 표시된다는 것입니다. 대신 attendee_message 테이블에서 created_at를 어떻게 표시합니까?

참석자, 범위와 모델의 관계를 가져옵니다 기능 : 내 list.blade.php에서

public function getatts() { 
     $atts = Attendee::cmo()->orderBy('created_at'); 
     $atts = $atts->paginate(25); 
     return $atts; 
    } 

    public function scopeCmo($query) 
    { 
     return $query->where('block_id', '=', 3); 
    } 

    public function messages() { 
     return $this->belongsToMany('\App\Models\Message','attendee_message','attendee_id','message_id') 
      ->withPivot('id'); 
    } 

:

@foreach ($att->messages as $message) 
    <li>'{{$message->subject}}' sent {{$message->created_at}}</li> 
@endforeach 

답변

1

는 피벗 테이블의 행에 액세스하려면를 pivot 속성을 사용할 수 있습니다. Laravel docs

$message->pivot->created_at 

그러나 기본적으로 피봇 Object에 전용 키가있다. 따라서해야 할 일은

->withPivot('created_at'); 

입니다. 귀하의 경우에는 id을 갖고 싶으면 ->withPivot('id', 'created_at')이됩니다.