我试图建立一个查询,它将返回与它的关系项目的记录。但是,它需要通过二级关系进行排序。而且,它也需要分页。雄辩的查询返回按第二级关系排序的项目
下面是模型和关系:
class FirstModel extends Model
{
public function secondModel()
{
return $this->hasMany(SecondModel::class);
}
}
class SecondModel extends Model
{
public function firstModel()
{
return $this->belongsTo(FirstModel::class);
}
public function thirdModel()
{
return $this->belongsToMany(ThirdModel::class);
}
}
class ThirdModel extends Model
{
public function secondModel()
{
return $this->belongsToMany(SecondModel::class);
}
}
第一种模式有一个与第二模型(第二模型表对于第一种模式ID字段)一对多的关系。
第二个模型与第三个模型(使用具有第一个模型ID和第二个模型ID的数据透视表)具有多对多关系。
期望的返回将是由ThirdModel id排序的FirstModel项目的集合。
如何使用Eloquent或Laravel的数据库查询生成器来完成此查询?
谢谢。
如果'FirstModel'有很多'SecondModel'并且'SecondModel'有很多(多对多)'ThirdModel',那么'FirstModel'应该按照什么顺序排列'ThirdModel'?第一个'SecondModel'关系中的第一个? – fubar
最低ID(如果我们坚持使用ASC)。这个想法是通过第三个模型ID值对结果进行排序。 – crabbly