Laravel仅从数据透视表中获取某些数据

时间:2014-10-03 07:41:00

标签: php sql laravel

我使用Laravel查询有分数的用户(eventcore表中的行) 我想要返回所有拥有ID为3的事件分数的用户

是否可以仅返回在数据透视表中找到的每个用户的分数(请参阅下面的结果)

enter image description here

这是我使用

的代码
    $persons = Person::whereHas('eventscore', function($q) {
        $q->where('id', 3);
    })->with('eventscore')->get();

    return $persons;

谢谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

// Person model

// accessor for easy fetching the score from the pivot model
public function getScoreAttribute()
{
  return ($this->pivot && $this->pivot->score)
    ? $this->pivot->score
    : null;
}

// example usage for the event's page (I assume participants is the relation)
$event = Event::with('participants')->find(3);

// somewhere in the view template
@foreach ($event->participants as $participant)
  {{ $participant->name }} - score: {{ $participant->score }}
@endforeach