【问题标题】:transform data collection into laravel将数据收集转换为 laravel
【发布时间】:2019-12-02 20:25:27
【问题描述】:

我开始使用 laravel 并获取我使用 eloquent 的数据,所以我有一个或多或少看起来像这样的数据集合:

[
  {
    "title": "Expense",
    "name": "list",
    "id": 2
  },
  {
    "title": "Expense",
    "name": "register",
    "id": 3
  },
  {
    "title": "Expense",
    "name": "show",
    "id": 4
  },
  {
    "title": "Expense",
    "name": "update",
    "id": 5
  },
  {
    "title": "Expense",
    "name": "remove",
    "id": 6
  },
  {
    "title": "Income",
    "name": "list",
    "id": 7
  },
  {
    "title": "Income",
    "name": "register",
    "id": 8
  },
  {
    "title": "Income",
    "name": "show",
    "id": 9
  },
  {
    "title": "Income",
    "name": "update",
    "id": 10
  },
  {
    "title": "Income",
    "name": "remove",
    "id": 11
  }
]

所以我想知道如何使用它提供的方法来转换这个集合,或者我是否需要使用本机数组,以便我之前展示的集合可以如下所示:

[  
   {  
      "title":"Expense",
      "permissions":[  
         {  
            "id":2,
            "name":"list"
         },
         {  
            "id":3,
            "name":"show"
         },
         {  
            "id":4,
            "name":"register"
         },
         {  
            "id":5,
            "name":"update"
         },
         {  
            "id":6,
            "name":"remove"
         }
      ]
   },
   {  
      "title":"Income",
      "permissions":[  
         {  
            "id":7,
            "name":"list"
         },
         {  
            "id":8,
            "name":"show"
         },
         {  
            "id":9,
            "name":"register"
         },
         {  
            "id":10,
            "name":"update"
         },
         {  
            "id":11,
            "name":"remove"
         }
      ]
   }
]

【问题讨论】:

    标签: php arrays laravel collections


    【解决方案1】:

    这更像是一个 PHP 问题,而不是 Laravel 问题。 Eloquent 不会为您更改它,除非权限链接到另一个表,然后您将以该格式获取它们,您需要做的就是简单地在本机编辑您的数组。

    【讨论】:

      【解决方案2】:

      你可以在 laravel 集合中使用 groupBy 像这样

      $collection = new Collection([
        {
          "title": "Expense",
          "name": "list",
          "id": 2
        },
        {
          "title": "Expense",
          "name": "register",
          "id": 3
        },
        {
          "title": "Expense",
          "name": "show",
          "id": 4
        },
        {
          "title": "Expense",
          "name": "update",
          "id": 5
        },
        {
          "title": "Expense",
          "name": "remove",
          "id": 6
        },
        {
          "title": "Income",
          "name": "list",
          "id": 7
        },
        {
          "title": "Income",
          "name": "register",
          "id": 8
        },
        {
          "title": "Income",
          "name": "show",
          "id": 9
        },
        {
          "title": "Income",
          "name": "update",
          "id": 10
        },
        {
          "title": "Income",
          "name": "remove",
          "id": 11
        }
      ]);
      
      $grouped = $collection->groupBy('title');
      
      $grouped->toArray();
      
      
      

      【讨论】:

        猜你喜欢
        • 2016-05-12
        • 2015-11-28
        • 2018-02-16
        • 2012-01-13
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 2018-08-11
        相关资源
        最近更新 更多