【发布时间】:2017-09-23 08:03:15
【问题描述】:
我正在尝试构建一个查询,该查询将返回项目的记录及其关系。但是,它需要按二级关系排序。而且,它还需要分页。
以下是模型和关系:
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 的 DB Query builder 完成这个查询?
谢谢。
【问题讨论】:
-
如果
FirstModel有很多SecondModel并且SecondModel有很多(多对多)ThirdModel,那么ThirdModelid 应该由哪个FirstModel排序?第一个SecondModel关系中的第一个? -
id 最低的那个(如果我们坚持使用 ASC)。这个想法是通过第三个模型 id 值对结果进行排序。
标签: mysql laravel eloquent laravel-eloquent laravel-query-builder