【发布时间】:2019-08-29 05:00:43
【问题描述】:
我有 3 个表:reports、fields 和 report_fields,这是其他 2 个表之间的枢纽。我需要做的是在 field 表中按位置 column 订购 report_field.field .
我尝试在Models 或使用with 的关系中进行排序,但我可能做错了。
例如:
$query = Report::with([ 'reportFields.field' => function ($q) {
$q->orderBy('position', 'asc');
//$q->orderByRaw("fields.position DESC");
},
有人可以举一个订购 2 级嵌套关系的基本示例吗?
编辑:我不需要按基表中的任何列排序,而是按第二个表中的列对数据透视表中的条目列表进行排序。
编辑2:
举个例子,输出应该如何排序:
Report
ReportField
Field.position = 1
ReportField
Field.position = 2
ReportField
Field.position = 3
【问题讨论】:
-
不是一回事。问题是按嵌套关系按 2 级排序。您指定的链接是关于在单个表中按 2 列排序。
-
我需要访问“数据透视”表
report_fied以获取该报告独有的其他表字段,因此我无法使用标准的 hasManyThrough。关系是使用 belongsTo/hasMany 建立的。
标签: php laravel orm nested foreign-keys