using count()
Sep 20, 2022
9
Level 1
How to group by in multi relational table
here is my code:
Invoice::select('id', 'date')
->with('invoice_items:invoice_id,item_id,amount', 'invoice_items.item_title:id,name')
->groupBy('item_id') // invoice item id
->groupBy('amont') // item price
->get();
I want same invoice item id will be grouped and SUM() price. but I don't understand how do i do this. thanks.
Level 1
Guys! finally I solved my problem!
$invoices = Invoice::select('id', 'date', 'type')
->with('invoice_items:invoice_id,item_id,amount', 'invoice_items.item_title:id,name')
->latest('id')
->get();
foreach($invoices as $invoice)
{
echo date('d.M.Y', strtotime($invoice->date)) . "--- <br/> ";
$items = $invoice->invoice_items->groupBy('item_id');
foreach($items as $item)
{
echo $item[0]['item_title']['name'] . ' - ' . $item->sum('amount') . "<br/>";
}
echo "<br/><br/>";
}
Please or to participate in this conversation.