首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Laravel中对嵌套的二级关系中的列进行排序?

如何在Laravel中对嵌套的二级关系中的列进行排序?
EN

Stack Overflow用户
提问于 2019-04-08 13:28:45
回答 1查看 1.6K关注 0票数 2

我有三个表:reportsfieldsreport_fields,它是其他两个之间的枢纽。我需要做的是根据report_field.field表中的位置columnfield排序。

我尝试在Models中或在使用with时对关系进行排序,但我可能做错了。例如:

代码语言:javascript
运行
复制
$query = Report::with([ 'reportFields.field' => function ($q) {
    $q->orderBy('position', 'asc');
    //$q->orderByRaw("fields.position DESC");
},

有人能给出一个基本的例子来排序一个二级嵌套关系吗?

编辑:我不需要按基表中的任何列排序,而是按第二个表中的列对透视表中的条目列表进行排序。

Edit2:

举一个输出应该如何排序的例子:

代码语言:javascript
运行
复制
Report
    ReportField
        Field.position = 1
    ReportField
        Field.position = 2
    ReportField
        Field.position = 3
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-08 17:15:20

您可以在第一个表reports的关系上添加所需的排序

代码语言:javascript
运行
复制
public function reportFields()
{
    return $this->hasMany(ReportFields::class)
        ->select('report_fields.*')
        ->join('fields', 'report_fields.field_id', 'fields.id')
        ->orderBy('fields.position', 'asc');
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55566752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档