2015-04-07 4 views
1

Я не могу найти, как получить все элементы с отношениями к другому элементу, используя Eloquent в Laravel. У меня есть вещества и содержимое, и я хочу, чтобы все содержимое, относящееся к веществам с именем «subst».Laravel получить все модели с отношениями

Мое отношение вещество - Содержание:

public function relation() 
{ 
    return $this->belongsToMany('Substance', 'contents_substances', 'id_contents', 'id_substances'); 
} 

public function relation() 
{ 
    return $this->belongsToMany('Content', 'contents_substances', 'id_contents', 'id_substances'); 
} 

Я знаю, что я могу получить все элементы, относящиеся к одному веществу:

$content = Substance::find(1)->relation()->get(); 

но можно получить все элементы, относящиеся к группе вещества?

что-то вроде:

$sub = Substance::where('name', '=', 'subst'); // get all the substances with that name 
$contents =$sub->relation()->get(); // ??? 

Любая помощь приветствуется!

ответ

0

Самый простой способ - начать запрос с другого угла. В этом случае от Content. whereHas затем добавит ограничение, основанное на соотношении substances:

$contents = Content::whereHas('substances', function($q){ 
    $q->where('name', 'subst'); 
})->get(); 
Смежные вопросы