Laravel - 过滤和分组具有不同类型的集合

时间:2017-09-21 10:57:23

标签: laravel laravel-5 collections eloquent

我有两种不同类型的藏品。

Collection {#277 ▼
  #items: array:2 [▼
    "" => Collection {#271 ▼
      #items: array:2 [▼
        0 => {#265 ▼
          +"id": 3
          +"name": "Product 3"
          +"cover_image": ""
        }
        1 => {#273 ▼
          +"id": 9
          +"name": "Product 9"
          +"cover_image": ""
        }
      ]
    }
    1 => Collection {#272 ▼
      #items: array:1 [▼
        0 => SuperProducts {#282 ▼
          +timestamps: true
          #table: "super_products"
          #fillable: array:6 [▶]
          #connection: "mysql"
          #primaryKey: "id"
          #keyType: "int"
          +incrementing: true
          #with: []
          #withCount: []
          #perPage: 15
          +exists: true
          +wasRecentlyCreated: false
          #attributes: array:9 [▶]
          #original: array:9 [▶]
          #casts: []
          #dates: []
          #dateFormat: null
          #appends: []
          #events: []
          #observables: []
          #relations: []
          #touches: []
          #hidden: []
          #visible: []
          #guarded: array:1 [▶]
        }
      ]
    }
  ]
}

第一个集合是一个转换为集合的数组,不使用Eloquent。其次是SuperProduct Collection。两个集合使用合并组合在一起。有没有办法可以将这两个不同的集合分组?或者可能有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

您是否尝试从SuperProducts中加载子项目? 如果是这种情况,您应该使用如下的雄辩关系加载您的子项目的主要SuperProducts集合:

App\SuperProducts::with('name_of_your_relation') [..]

如果情况并非如此,您应该将结果附加到您的收藏中:https://laravel.com/docs/5.5/eloquent-serialization#appending-values-to-json

希望它有所帮助