Laravel получит все модели с отношениями

Я не могу найти, как получить все элементы с отношениями к другому элементу, используя Eloquent в 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(); // ???

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

1

Решение

Проще всего начать запрос под другим углом. В этом случае из Content, whereHas Затем добавим ограничение на основе substances связь:

$contents = Content::whereHas('substances', function($q){
$q->where('name', 'subst');
})->get();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]