Laravel得到了所有关系模型

时间:2015-04-07 16:52:15

标签: php laravel orm eloquent relationships

我无法在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 个答案:

答案 0 :(得分:0)

最简单的方法是从另一个角度开始查询。在这种情况下来自Content。然后,whereHas会根据substances关系添加约束:

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