gpt4 book ai didi

php - Laravel5.7 : Get sum() for current month using model returned in view

转载 作者:行者123 更新时间:2023-11-29 09:57:41 25 4
gpt4 key购买 nike

我正在尝试获取当月“time_spent”字段的总和,因此当到了下个月时,它将重新开始。我目前的模型中有:

 public function transactions()
{
return Transaction::groupBy('created_at')
->selectRaw('sum(time_spent) as sum')
->pluck('sum');
}

然后在我的 Blade View 中,我使用以下方式调用:

$info->transactions()->sum()

这确实从数据库返回 time_spent 的总和,但它不关心created_at,我假设它没有使用它,我的created_at列是timestamp()

最佳答案

您需要使用方法 whereMonthwhereYear 按当前月份和年份过滤交易。之后,您可以使用数据库的 sum 方法对所有 time_spent 进行求和。

您的方法应如下所示:

public function transactions($year, $month)
{
return Transaction::whereYear('created_at', $year)
->whereMonth('created_at', $month)
->sum('time_spent');
}

这将运行与此类似的查询(这取决于您使用的数据库):

SELECT SUM(transactions.time_spent) FROM transactions WHERE YEAR(transactions.created_at) = 2018 AND MONTH(transactions.created_at) = 11;

要获取当前月份,您应该调用如下方法:

$month = date('m');
$year = date('Y');

$transactions = $info->transactions($month, $year);

关于php - Laravel5.7 : Get sum() for current month using model returned in view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53563704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com