【问题标题】:how to group result with json key name in laravel如何在laravel中使用json键名对结果进行分组
【发布时间】:2021-11-29 11:47:51
【问题描述】:
user table 
 id name age 
 1  TuTu   3
 2  SuSu   4
 3  YuYu   4
 4  MoMo   4

我想这样输出json。

[
  {
    "age": 3,
    "user": [
      {
        "id": 2,
        "name": "TuTu"
      }
    ]
  },
  {
    "age": 4,
    "user": [
      {
        "id": 2,
        "name": "SuSu"
      },
      {
        "id": 3,
        "name": "YuYu"
      },
      {
        "id": 4,
        "name": "MoMo"
      }
    ]
  }
]

User::get()->groupBy("age") 无法正常工作。

如何在 laravel 中添加类似上述格式的 json 密钥年龄和用户?

【问题讨论】:

    标签: json laravel


    【解决方案1】:

    答案会为您提供所需的输出,但请考虑将API Resource 用于 JSON 响应。

    $response = [];
    
    User::get()->groupBy('age')->each(function ($item, $key) use (&$response) {
        $temp = [];
    
        $temp['age'] = $key;
    
        $temp['user'] = $item->transform(function ($i, $k) {
            unset($i['age']);
            return $i;
        })->all();
    
        $response[] = $temp;
    });
    
    var_dump($response); // Your Output JSON
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      相关资源
      最近更新 更多