首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拉拉维尔图日期跳过

拉拉维尔图日期跳过
EN

Stack Overflow用户
提问于 2020-04-24 01:46:49
回答 1查看 659关注 0票数 0

有人能帮帮我吗..。我有包含活动成员的数据库,并希望在图表中显示最后7天的数据。

代码语言:javascript
运行
复制
id member_id bonus created_at
1    1         3     2020-04-16
2    1         3     2020-04-17
3    1         7     2020-04-18
4    1         5     2020-04-19
5    1         15    2020-04-20
6    1         10    2020-04-21
7    1         9     2020-04-22 
8    1         11    2020-04-24

我的拉拉密码

代码语言:javascript
运行
复制
$chart = charts::where('member_id', Auth::user()->id)->orderBy('id', 'asc')->where('created_at', '>=', \Carbon\Carbon::today()->subDays(7))->get();

$bonus = [];
foreach ($charts as $index => $count) {
            $bonus[] = [$count->bonus];
        }
return view('index', ['bonus' => $bonus]);

问题是在图表中,因为显示从2020-04-172020-04-24的数据是合乎逻辑的,但我也想在图表中显示成员没有任何奖金的日子--例如, 2020-04-23 不存在,因为成员这一天没有奖金,所以我需要在2020-04-23的图表0中显示。

有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-24 02:21:08

我假设您的created_at列是timestamp (为该示例添加格式)

代码语言:javascript
运行
复制
public function index()
{
    $start = Carbon::today()->subDays(7);
    $end = Carbon::yesterday();

    $activities = Activity::where('member_id', Auth::user()->id)
        ->where('created_at', '>=', Carbon::today()->subDays(7))
        ->get(['bonus', DB::raw("DATE_FORMAT(created_at,'%Y-%m-%d') as date")])
        ->pluck('bonus', 'date');

    $dates = $this->generateDates($start, $end); // you fill zero valued dates

    return $dates->merge($activities); // overwrite your bonuses with the zero values
}

public function generateDates(Carbon $startDate, Carbon $endDate, $format = 'Y-m-d')
{
    $dates = collect();
    $startDate = $startDate->copy();

    for ($date = $startDate; $date->lte($endDate); $date->addDay()) {
        $dates->put($date->format($format), 0);
    }

    return $dates;
}

格式化日期

代码语言:javascript
运行
复制
$formattedDates = $dates->merge($activities)
            ->keys()
            ->transform(function ($date) {
                return Carbon::parse($date)->format('d F');
            });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61399743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档