laravel 收集和修改后选择的值

问题描述 投票:0回答:1

我有与折扣和类别相关联的产品型号;

$products = Product::with('discounts')->with('categories')->get();

然后我根据类别操作产品

foreach ($products as $item) {
    if (category_condition) {
        $item['new_prod_attribute'] = 'data_cat';
    }

    if (discount_condition) {
        $item['new_prod_attribute1'] = 'data_disc';
    }
}

现在我想获得一些选择性数据,例如:

product->id,name,new_prod_attribute,new_prod_attribute1; category->name; discount->offer_name as subset_data
;

php json laravel subset array-intersect
1个回答
1
投票

你可以使用

map

$productData = $products->map(function ($product) {
    $data = [
        'id' => $product->id,
        'name' => $product->name,
        ...
        'category_name' => $product->categories->name,
    ];
    
    if (category_condition) {
        $data['new_prod_attribute'] = 'data_cat';
    }

    if (discount_condition) {
        $data['new_prod_attribute1'] = 'data_disc';
    }

    return $data;
});

当你转储

$productData
你拥有所有数据

© www.soinside.com 2019 - 2024. All rights reserved.