我有三个表:reports,fields和report_fields,它是其他两个之间的枢纽。我需要做的是根据report_field.field表中的位置column对field排序。
我尝试在Models中或在使用with时对关系进行排序,但我可能做错了。例如:
$query = Report::with([ 'reportFields.field' => function ($q) {
$q->orderBy('position', 'asc');
//$q->orderByRaw("fields.position DESC");
},有人能给出一个基本的例子来排序一个二级嵌套关系吗?
编辑:我不需要按基表中的任何列排序,而是按第二个表中的列对透视表中的条目列表进行排序。
Edit2:
举一个输出应该如何排序的例子:
Report
ReportField
Field.position = 1
ReportField
Field.position = 2
ReportField
Field.position = 3发布于 2019-04-08 17:15:20
您可以在第一个表reports的关系上添加所需的排序
public function reportFields()
{
return $this->hasMany(ReportFields::class)
->select('report_fields.*')
->join('fields', 'report_fields.field_id', 'fields.id')
->orderBy('fields.position', 'asc');
}https://stackoverflow.com/questions/55566752
复制相似问题