2017-01-22 22 views
0

我有不同的查詢要在不同的時間段進行選擇。 我想將它們傳遞給視圖laravel將多個變量從不同的查詢傳遞到視圖

$sales = DB::table('sales') 
     ->join('drugs', 'drugs.id', '=', 'sales.drug_id') 
     ->select('sales.*','drugs.name', DB::raw('sum(sales.quantity_sold) as total_sales')) 
     ->whereYear('date_sold','>','2014') 
     ->whereYear('date_sold','<','2017')    
     ->get()->groupBy('sales.drug_id'); 

$stocks = DB::table('sales') 
     ->join('drugs', 'drugs.id', '=', 'sales.drug_id') 
     ->select('sales.*','drugs.name', DB::raw ('AVG(sales.quantity_sold) as average_sales')) 
     ->whereMonth('date_sold','=', Carbon::today()->month)    
     ->get()->groupBy('sales.drug_id'); 

$data = $sales->merge($stocks); 

在我看來,我想有一個表,其中我將有藥物,總銷售額和平均銷售額在一排。

@foreach($data as $key => $item) 
    <tr id="item{{$item->id}}">                    <td>{{$item->name}}</td>  
       <td>{{$item->total_sales}}</td>  
       <td>{{number_format($item->average_stocks,0)}}</td> 

有什麼建議嗎?

回答

0

首先,組中的兩個由公共字段(drug_id)收集對象像這樣:

$sales = DB::table('sales') 
     ->join('drugs', 'drugs.id', '=', 'sales.drug_id') 
     ->select('sales.*','drugs.name', DB::raw('sum(sales.quantity_sold) as total_sales')) 
     ->whereYear('date_sold','>','2014') 
     ->whereYear('date_sold','<','2017') 
     ->groupBy('sales.drug_id') 
     ->get()->groupBy('drug_id'); 

$stocks = DB::table('stocks') 
     ->join('drugs', 'drugs.id', '=', 'stocks.drug_id') 
     ->select('stocks.*','drugs.name', DB::raw ('AVG(stocks.quantity_sold) as average_stocks')) 
     ->whereMonth('date_sold','=', Carbon::today()->month) 
     ->groupBy('stocks.drug_id') 
     ->get()->groupBy('drug_id'); 

然後,合併兩個集合像這樣:

$data = $sales->merge($stocks); 

最後,注入在數據從你的控制器看來,像這樣:

return view('viewname', compact('data')); 
+0

我得到一個錯誤,調用一個非對象的成員函數merge() – Ashley

+0

你可以dd($銷售)來檢查$銷售看起來像什麼嗎? – Paras

+0

對於銷售::數組:3 [▼ 0 => {#323▼ + 「名稱」: 「異煙肼,300mg的」 + 「TOTAL_SALES」: 「409」 } 1 => {#324▼ + 「名稱」: 「氨苯,每天100mgs」 + 「TOTAL_SALES」: 「256」 } 2 => {#325▼ + 「名稱」: 「奈韋拉平,200mgs」 + 「TOTAL_SALES」: 「384」 } ]和用於庫存:數組:3 [▼ 0 => {#326▼ + 「名稱」: 「異煙肼,300mg的」 + 「average_sales」: 「37.5000」 } 1 => {#327 ▼ +「na我 「: 」氨苯,每天100mgs「 +」 average_sales 「: 」20.8462「 } 2 => {#328▼ +」 名稱 「: 」奈韋拉平,200mgs「 +」 average_sales「: 」32.0000「 } ] – Ashley

相關問題