laravel将来自不同查询的多个变量传递给视图

时间:2017-01-22 20:30:42

标签: laravel foreach controller eloquent

我有不同的查询要在不同的时间段内选择。 我想将它们传递给视图

mySqlCommand.CommandText = "SELECT * FROM

在我看来,我希望有一张桌子,我将连续获得药物,总销售额和平均销售额。

WHERE Username LIKE '%@Username%' ORDER BY Id DESC";

有什么建议吗?

1 个答案:

答案 0 :(得分: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'));