Laravel 获取所有具有关系的模型
Posted
技术标签:
【中文标题】Laravel 获取所有具有关系的模型【英文标题】:Laravel get all the models with relations 【发布时间】:2015-06-12 08:43:23 【问题描述】:我找不到如何在 Laravel 中使用 Eloquent 获取与另一个元素有关系的所有元素。 我有物质和内容,想要所有与名称为“subst”的物质相关的内容。
我的关系物质 - 内容:
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();
【讨论】:
以上是关于Laravel 获取所有具有关系的模型的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 8 中获取与 json 有一个 hasMany 关系的表的所有模型?