2017-08-03 2 views
1

Hier ist meine Controller-FunktionWarum zeigt Laravel Array an? anstelle des Wertes?

public function index() 
{ 
    $currentdate = Carbon::yesterday(); 
    $totalsales = DB::table('receipts') 
     ->whereDate('created_at','=', $currentdate) 
     ->where('status','=', 'served') 
     ->orderBy('created_at','asc') 
     ->select(DB::raw('SUM(amount_due) as totalsales')) 
     ->get(); 
     // ->first(); 
     // return $totalsales; 
    return view('dashboard.index',compact('totalsales')); 
} 

Hier ist meine Ansicht

<div class="panel-body"> 
<h2>{{$totalsales}}</h2> 

insted des Wertes selbst die Ansicht gibt ein Array wie diese es

[{"totalsales":"130.00"}] 
+0

Mit get verstehen() Sie Sammlung –

+0

@SagarGautam bekommen -> so was sould ich tun? –

+0

Wenn Sie nur aufnehmen möchten, können Sie '-> first()' verwenden, ansonsten verwenden '-> get()'. Im obigen Fall können Sie foreach für '$ totalsales' verwenden. –

Antwort

1

Ich glaube, Sie brauchen nur Summe der amount_due Spalte, so dass Sie folgende Abfrage verwenden können.

$totalsales = DB::table('receipts') 
       ->whereDate('created_at','=', $currentdate) 
       ->where('status','=', 'served') 
       ->orderBy('created_at','asc') 
       ->sum('amount_due'); 

Halten Sie anderen Code gleich, dies wird für Sie arbeiten.

Hoffnung, die Sie

0

ist doesn Ich weiß nicht, dass es nur ein Feld gibt.

müssen Sie entweder

<h2>{{ $totalsales->totalsales }}</h2> 

oder ändern Sie Ihre Abfrage angeben:

$totalsales = DB::table('receipts') 
    ->whereDate('created_at','=', $currentdate) 
    ->where('status','=', 'served') 
    ->orderBy('created_at','asc') 
    ->select(DB::raw('SUM(amount_due) as totalsales')) 
    ->first() 
    ->totalsales; 
+0

ich habe dieses versucht, aber es zeigte mir diese errorCall zu undefinierten Methode stdClass :: value() –

+0

Überprüfen Sie meine Bearbeitung. Anstelle von -> value ('totalsales') benötigen Sie mit dem Query Builder (DB) -> totalsales – Jed

Verwandte Themen