当前位置: 首页 > 知识库问答 >
问题:

如何在Laravel嵌套2级关系中按列排序?

贺光华
2023-03-14

我有3个表:报告字段report_fields,这是其他2之间的枢轴。我需要做的是按字段表中的位置排序report_field.field

我尝试在模型中的关系中排序,或者在将一起使用时排序,但我可能做错了。前任:

$query = Report::with([ 'reportFields.field' => function ($q) {
    $q->orderBy('position', 'asc');
    //$q->orderByRaw("fields.position DESC");
},

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

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

编辑2:

举例说明如何对输出进行排序:

Report
    ReportField
        Field.position = 1
    ReportField
        Field.position = 2
    ReportField
        Field.position = 3

共有1个答案

周弘盛
2023-03-14

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

public function reportFields()
{
    return $this->hasMany(ReportFields::class)
        ->select('report_fields.*')
        ->join('fields', 'report_fields.field_id', 'fields.id')
        ->orderBy('fields.position', 'asc');
}
 类似资料:
  • 问题内容: 我在laravel中很难建立起非常嵌套的关系。 所需的行为如下, 我通过ID选择一个事件,我想查看哪些人已订阅该事件。 现在的问题是事件和人员之间有一些表格。 这是有效的查询! 事件模型 城市模型 公司模式 人物模型 我尝试过的 和 还有很多其他可能性,我真的很坚持。在laravel中实现这种嵌套关系链接如此困难吗? 谢谢! 问题答案: 如果只想从表中选择某些字段,请使用以下命令:

  • 问题内容: 我试图按表中的列对表中的产品进行排序: 我在商店\产品模型中设置关系: 但是产品没有分类。我得到一个仅适用于表的查询。 如何解决? 问题答案: 急切的加载使用单独的查询,因此您需要为此加入: 子句是为了不将联接的列追加到模型中。 编辑:根据@alexw注释-如果需要,您仍然可以包括联接表中的列。您可以将它们添加到或致电等。

  • 我有以下模式的数据。我想所有的列都应该按字母顺序排序。我希望它在pyspark数据帧中。 下面的代码仅对外部列进行排序,而不对嵌套列进行排序。 此代码后面的模式如下所示 (因为id处有下划线,所以它首先出现) 我想要的架构如下。(甚至地址内的列也应该排序) 提前谢谢。

  • 在之前,创建一个有依赖其他模型的模型的时候,我们需要提前把依赖的模型给建立好,这样就非常麻烦,是不是有那么一种方法,在一个 create 里面把其他的依赖模型一起新建出来呢? 这一小节就来解决这个问题。这其中有一个坑(关于命名),让我调试的头皮发麻。 Book 与 User 的 belongs 关系 1. 保存关系 来到 book.ts , 首先保存一下 this.belongsTo 的返回值,在

  • 我有两种型号: 产品,它有字段 库存,具有产品标识和数量字段 我想按排序字段(ASC)获取订购的产品,但库存量等于0的产品需要位于列表的末尾。 例如。 产品介绍 股票 预期列表(产品ID)-4、1、2、3 我已经为我需要做的事情编写了SQL查询。 有没有一种方法可以使用雄辩模型的作用域来获得此类列表? 使现代化 解决方案。

  • 我有以下三个表格: 帖子 帖子: 评论: 标签: Post表有许多注释,comments表有许多与之关联的标记。 如何使用“快速加载”将所有这些表组合在一起? 比如: 但是这个查询总是在标记关系中返回空响应。 我做错了什么? 期望的结果是这样的: 你可以看到帖子里面包含评论,评论里面也包含标签关系。 另外,我在我的项目中使用了“jenssegers/laravel mongodb”包,我试图在没有