У меня есть массив, но сейчас он все еще основан на id_order, например:
здесь мой контроллер
public function detail()
{
$data = Order::with('detail')->get();
return $data;
}
результат:
[
{
"id": 1, //id_order
"order_number" : "IT.123.76",
"status" : "Pending",
"details" : [
{
"id" : 1,
"id_order" : 1,
"id_item" : 2, //based from this
"name" : "Avocado Juice",
"qty" : 7
},
{
"id" : 2,
"id_order" : 1,
"id_item" : 3, //based from this
"name" : "Orange Juice",
"qty" : 2
},
{
"id" : 3,
"id_order" : 1,
"id_item" : 5, //based from this
"name" : "Mango Juice",
"qty" : 1
}
]
},
{
"id": 2, //id_order
"order_number" : "IT.123.78",
"status" : "Pending",
"details" : [
{
"id" : 4,
"id_order" : 2,
"id_item" : 2, //based from this
"name" : "Avocado Juice",
"qty" : 1
},
{
"id" : 5,
"id_order" : 2,
"id_item" : 9, //based from this
"name" : "Ice Tea",
"qty" : 2
}
]
}
}
]
Как изменить структуру массива так, чтобы она была такой (на основе id_item и элемента name становится ключом в каждом элементе), а также для qty каждого элемента, например, = сок авокадо имеет 2 порядка, первый порядок имеет qty: 7 и второй порядок Кол-во: 1, затем суммирует 8 результатов?
[
{
"qty_total" : 8, // from 7+1 in avocado juice
"Avocado Juice" : [
{
"id" : 1, //From id_order
"id_item" : 2, //Avocado Juice
"order_number" : "IT.123.76",
"qty" : 7
},
{
"id" : 2, //From id_order
"id_item" : 2, //Avocado Juice
"order_number" : "IT.123.78",
"qty" : 1
}
]
},
{
"qty_total" : 2,
"Orange Juice" : [
{
"id" : 1, //From id_order
"id_item" : 3, //Orange Juice
"order_number" : "IT.123.76",
"qty" : 2
}
]
},
{
"qty_total" : 1,
"Mango Juice" : [
{
"id" : 2, //From id_order
"id_item" : 5, //Mango Juice
"order_number" : "IT.123.76", //order_number Id_order 1
"qty" : 1
}
]
},
{
"qty_total" : 2,
"Ice Tea" : [
{
"id" : 1, //From id_order
"id_item" : 9, //Ice Tea
"order_number" : "IT.123.78",
"qty" : 2
}
]
},
]
Спасибо за продвижение