2017-04-20 107 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]; 

請首選解決方案。 ;-)