2017-11-21 2 views
0

Also versuche ich, alle Details aus allen Rechnungen zu bekommen, in der bill_details Tabelle habe ich eine Spalte um die Rechnung zu identifizieren, zu der dieses Detail gehört (foreing key) , meine Frage wie folgt aussehen:Split stdClass/Array vom Query Builder in Laravel in 2 Arrays nach Wert

return $this 
      ->join('bill_detail as bd' , 'bills.id'   , '=', 'bd.bill_id') 
      ->join('business'   , 'bills.business_id' , '=', 'business.id') 
      ->select('bills.user_id','bd.item','bd.quantity','bd.amount','bd.bill_id','bills.total') 
      ->where('bills.user_id', '=', $user) 
      ->get(); 

Welche dieser stclass oder Array zurückgibt (mit php formated):

array(4) { 
    [0]=> array(6) 
     { ["user_id"]=> int(1) ["item"]=> string(4) "Coffe" ["quantity"]=> int(1) ["amount"]=> string(4) "2.00" ["bill_id"]=> int(1) ["total"]=> string(5) "15.00" } 
    [1]=> array(6) 
     { ["user_id"]=> int(1) ["item"]=> string(18) "Water" ["quantity"]=> int(1) ["amount"]=> string(4) "6.00" ["bill_id"]=> int(1) ["total"]=> string(5) "15.00" } 
    [2]=> array(6) 
     { ["user_id"]=> int(1) ["item"]=> string(7) "Apple" ["quantity"]=> int(1) ["amount"]=> string(4) "1.00" ["bill_id"]=> int(2) ["total"]=> string(5) "23.00" } 
    [3]=> array(6) 
     { ["user_id"]=> int(1) ["item"]=> string(8) "Orange" ["quantity"]=> int(1) ["amount"]=> string(4) "4.00" ["bill_id"]=> int(2) ["total"]=> string(5) "23.00" } 
} 

gibt es eine optimale Art und Weise eher als ein foreach dieses Array in eine multi- aufzuspalten dimensionales Array basierend auf der bill_id-Spalte?

Danke.

Antwort

0

Ja, Sie können collect es und dann Gruppe von bill_id.

$results = $this 
    ->join('bill_detail as bd' , 'bills.id'   , '=', 'bd.bill_id') 
    ->join('business'   , 'bills.business_id' , '=', 'business.id') 
    ->select('bills.user_id','bd.item','bd.quantity','bd.amount','bd.bill_id','bills.total') 
    ->where('bills.user_id', '=', $user) 
    ->get(); 

return collect($results)->groupBy('bill_id'); 
+0

Das ist es, viel appreciated @ user3158900! –