Laravel 5.4 合并两个集合

4

我有两个集合,salescosts

现在我需要将它们合并成一个集合,以满足我的foreach条件(我不确定是否可以在一个foreach中使用两个集合)。

原始查询:

//Raw MySQL Queries for Sales
$total_sales = DB::raw('SUM(receipts.total) as totalSales');
$year_receipt_created = DB::raw('YEAR(receipts.created_at) as year');

//Raw MyQSL Queries for Cost of Goods Sold
$total_cost = DB::raw('(SUM(qty * cost)) as totalCost');
$year_sold = DB::raw('YEAR(created_at) as year');

这是我针对这两个集合的查询:query
$sales = DB::table('receipts')
            ->where('status', 'served')
            ->where('mode', 'restaurant')
            ->select($total_sales, $year_receipt_created)
            ->groupBy('year')
            ->get();

$costs = DB::table('orders')
            ->where('status', 'served')
            ->select($total_cost, $year_sold)
            ->groupBy('year')
            ->get();

尝试过的事情:将集合转换为数组并尝试合并它们,但是似乎出了问题。

我回滚了它,因为我不知道这是否是最好的方法。请告诉我什么是最好的方法。

更新:以下是这两个查询的输出结果,希望能有所帮助:

销售

{
    totalSales: "960.00",
    year: 2017
}

成本

{
    totalCost: "792.00",
    year: 2017
}

我尝试过的方法:(它显示找不到totalCost)
//Combining TWO collections into ONE Array
$gross_profit = array();
foreach (array_merge($sales, $costs) as $data) 
{
    $keys = array('total_sales', 'total_cost', '$year');
    $values = array($data->totalSales, $data->totalCost, $data->year);
    $gross_profit[$data] = array_combine($keys, $values);
}

已解决:我使用了collection merge(以前不知道有这样的东西)

我使用的语法是$result = $sales->merge($costs)

以下是结果:

{
    totalSales: "960.00",
    year: 2017
},
{
    totalCost: "792.00",
    year: 2017
}

回答者: Sagar Gautam


我看起来遇到了问题 - 是什么问题?你具体尝试了什么? - Preston Guillot
1
你尝试过集合合并吗?比如 $result = $sales->merge($costs) - Sagar Gautam
原文:And please add expected result as well 预期结果:请同时添加预期结果 - Sagar Gautam
我尝试过的是:(它说找不到totalCost)我猜您在尝试打印一个“Sales”实例时遇到了这个问题。 - Bagus Tesa
@SagarGautam,它起作用了!我将结果和语法添加到原始帖子中。谢谢兄弟,但我该如何点赞你的评论呢?xD - Jan Ariel San Jose
显示剩余6条评论
1个回答

7

谢谢!只是为了确保,调用Blade中的数据应该像这样:$result->totalCost$result->totalSales$result->year - Jan Ariel San Jose
是的,但使用foreach可能会出错,因为第一个中没有totalCost,第二个中也没有totalSales - Sagar Gautam
哦,天啊,我想我会遇到问题。:o 我会在90分钟后再试着问一次,不过我们还是成功地将它们结合了。:D - Jan Ariel San Jose
你正在进行电子商务项目工作吗?你所有的问题都是关于订单销售成本等等吗? :D :D - Sagar Gautam
我正在开发一款通用的 POS 和库存系统,适用于餐厅和零售商。它有很多设置,因此非常灵活。这些过去的问题对我的销售报告非常重要。它肯定会让人头痛。 :D - Jan Ariel San Jose
@JanArielSanJose 哇,一些会计应用程序总是在借方和贷方的后端出现问题。我以前也在类似的应用程序中工作过 xD。 - Sagar Gautam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接