php - 如何在 Laravel 5.4 中对 Json 输出进行分组?

标签 php json laravel laravel-5.4

是否可以对 laravel 的 JSON 输出进行分组/重新排列?我想在它发送给系统查看之前对其进行分组,所以我需要它在服务器端而不是客户端完成。

假设我有这样的 JSON 结构:

id, name, date

或者在例子中,是这样的:

[[
{"id" : "1", "name" : "A", "date" : "2017-01-01"},
{"id" : "2", "name" : "B", "date" : "2017-01-01"},
{"id" : "3", "name" : "C", "date" : "2017-01-01"},
{"id" : "4", "name" : "D", "date" : "2018-01-01"},
{"id" : "5", "name" : "E", "date" : "2018-01-01"},
]]

是否可以将它分组为这样的东西?

[
    {"2017-01-01":[
        {"id":"1","name":"A"},
        {"id":"2","name":"B"},
        {"id":"3","name":"C"}
    ]},
    {"2018-01-01":[
        {"id":"4","name":"D"},
        {"id":"5","name":"E"},
    ]},
]

(如果你需要查看我的 JSON Controller )这是我的 JSON Controller :

public function harga($id)
{
  $harga = harga::whereHas('produk', function ($query) use($id) {
    $query->where('id',$id);
  })->get();
  return response()->json([$harga],200);
}

谢谢!

最佳答案

在您的查询中使用 groupBy:

public function harga($id)
{
  $harga = harga::whereHas('produk', function ($query) use($id) {
    $query->where('id',$id);
  })->get()->groupBy(column_name_you_want_to_group_by);
  return response()->json([$harga],200);
}

关于php - 如何在 Laravel 5.4 中对 Json 输出进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45030991/

相关文章:

PHP/MYSQL - 使用联合更新子查询选择

php - echo PDO 查询用于调试目的

c# - ASP.NET MVC 应用程序在 Ajax 请求上使用 Kendo Chart 和大数据源?

java - 从 Restful 服务返回时的最佳实践 - 返回 Java 对象与返回手动构造的 JSON

php - 为什么 attach 方法在 Laravel 中返​​回 null?

laravel - 使用身份验证护照系统覆盖 Laravel 中 api url 的身份验证重定向

javascript - AJAX 响应文本不匹配

ios - 从 JSON 文件中读取国家名称问题

Laravel 8 Fortify 登录显示 429 TOO MANY REQUESTS

php - 解析错误 : syntax error, 意外 'pname' (T_STRING) in C :\XAMPP\htdocs\testsubmit. php 第 22 行