2017-04-20 105 views
0

我有2个类别/结果集的第一个是products和第二个是sizes结果集映射或格式化3

"products": [ 
          { 
           "category_id": 5, 
           "id": 5, 
           "code": "A", 
           "name": "Pizzabrot", 
           "description": "", 
           "product_prices": [ 
            { 
             "product_id": 5, 
             "price": 2.5, 
             "size_id": 15 
            }, 
            { 
             "product_id": 5, 
             "price": 3.5, 
             "size_id": 16 
            } 
           ] 
          }, 
          { 
           "category_id": 5, 
           "id": 6, 
           "code": "B", 
           "name": "Pizzabrot mit Knoblauch", 
           "description": "", 
           "product_prices": [ 
            { 
             "product_id": 6, 
             "price": 3, 
             "size_id": 15 
            }, 
            { 
             "product_id": 6, 
             "price": 4, 
             "size_id": 16 
            } 
           ] 
          }] 

"sizes": [ 
         { 
          "id": 15, 
          "name": "Klein", 
          "category_id": 5 
         }, 
         { 
          "id": 16, 
          "name": "Gro\u00df", 
          "category_id": 5 
         } 
        ] 

我想用它的替换每product_prices.size_id姓名从sizes收藏

回答

0

从我所看到的可能会更好关联ProductPricesSizes,并使用Products来获取它们。

如果这不适合某些原因,你的需求,你可以通过使用发现sizes一个find('list')(见Docs)是这样的:

$query = $this->Sizes->find('list', [ 
    'keyField' => 'id', 
    'valueField' => 'name' 
]); 
$sizes = $query->toArray(); 

然后通过products及其product_prices循环,这样做。

$product_price->size_id = $sizes[$product_price->size_id]; 

请首选解决方案。 ;-)