【问题标题】:Laravel get all the models with relationsLaravel 获取所有具有关系的模型
【发布时间】: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(); // ???

感谢任何帮助!

【问题讨论】:

    标签: php laravel orm eloquent relationships


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-06-03
      • 1970-01-01
      • 2021-08-22
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2021-06-11
      相关资源
      最近更新 更多