2017-07-28 3 views
0

Ist es möglich, zwei Integer aus der Datenbank in einem Blade hinzuzufügen?Laravel - Math Berechnungen in Blades

Um ein Szenario zu geben, habe ich einen Controller, der eine Sammlung von orders Tabelle komprimiert.

$solditems = DB::table('orders') 
      ->where('status', 'served') 
      ->orderBy('id') 
      ->get(); 

     return view('salesreports.sellingitems.index', compact('solditems')); 

Und ich habe solche in meiner Klinge verwendet.

   <table class="table table-hover"> 
        <tr> 
         <th>ID</th> 
         <th>Item</th> 
         <th>Sales</th> 
        </tr> 
       <thead> 
       </thead> 
        <tbody> 
         @forelse($solditems as $solditem) 
          <tr> 
           <td>{{$solditem->id}}</td> 
           <td>{{$solditem->item}}</td> 
           <td>{{$solditem->subtotal}}</td> 
          </tr> 
         @empty 
         @endforelse 
        </tbody> 
       </table> 

Nun, was ich tun möchte, ist ein Element zu kombinieren, die gleichen Elementnamen oder $solditem->item hat, während es Teilsumme addieren.

Zum Beispiel;

ID #1 Apple = 50 
ID #2 Apple = 80 

Wird dies werden;

ID #1 Apple = 130 

Ich versuchte groupBy auf Query Builder verwendet so ein Element mit demselben Namen nur einmal zeigen, aber ich habe Probleme, einen Algorithmus der Gestaltung der Wert Ihrer addieren.

Antwort

0

Versuchen Sie diese, Dies gibt Ihnen die Summe der Kosten mit dem gleichen Namen für alle Artikel.

$solditems = DB::table('orders') 
       ->where('status', 'served') 
       ->select('orders.*',DB::raw('SUM() as total')) 
       ->groupBy('orders.item') 
       ->orderBy('id') 
       ->get(); 
+0

Hallo. Ich habe Ihren Vorschlag ausprobiert, aber ich habe diesen Fehlercode. 'SQLSTATE [42000]: Syntaxfehler oder Zugriffsverletzung: 1064' ist mit diesem 'Auswahl'-Teil verknüpft. –

+0

Oh! Ich war ziemlich dumm. Ich habe keine Zwischensumme in 'SUM()' Parameter hinzugefügt. Also habe ich es in "SUM (Zwischensumme) als Zwischensumme" geändert und es funktionierte wie Magie. Vielen Dank! :) –

+0

@JanArielSanJose Irgendwie Glückwunsch –

0

Sie könnten die Sammelmethoden von Laravel nutzen. Sie können GroupBy method verwenden, um gruppierte Subarrays nach Produktnamen und foreach dieser Gruppe zu erstellen, die Sum method die Summe der gesamten Spalte zurückgeben.