2014-10-03 5 views
1

Я использую Laravel для запросов пользователей, у которых есть оценка (строка в таблице событий) И я хочу вернуть всех пользователей, у которых есть оценки для события с идентификатором 3Laravel Получение только данных certrain из сводной таблицы

можно ли вернуть только оценку каждого пользователя, найденного в сводной таблице (см результаты ниже)

enter image description here

Это код, я использую

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

    return $persons; 

Спасибо!

+0

Таким образом, вопросы есть Как извлечь eventscores с шарнирной 'баллов = 3' или Как извлечь данные только шарнирные? И это отношение следует называть «событиями», а не «eventcore», чтобы быть значимыми кстати. –

+0

Спасибо за ваш ответ! Я действительно хочу только получить оценку для этого события .. так что eventcore-> pivot-> score? Благодаря! – Notflip

+0

Jarek? Все еще заботиться, чтобы помочь мне? :) спасибо – Notflip

ответ

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 
+0

Что такое getScoreAttribute? Знает ли laravel это автоматически, когда вы запустите $ member-> score? Спасибо за ответ! это оно ! :) – Notflip

+0

Читайте это http://laravel.com/docs/4.2/eloquent#accessors-and-mutators –