Я не могу найти, как получить все элементы с отношениями к другому элементу, используя 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(); // ???
Любая помощь приветствуется!
Проще всего начать запрос под другим углом. В этом случае из Content
, whereHas
Затем добавим ограничение на основе substances
связь:
$contents = Content::whereHas('substances', function($q){
$q->where('name', 'subst');
})->get();
Других решений пока нет …