Laravel:Eloquent Daily和月度报告

时间:2016-07-17 20:25:30

标签: php laravel eloquent

我有以下代码来获取记录:

App\User::orderBy('balance', 'DESC')->limit(3)->get();

如何获取今天,上周和上个月的记录?

我添加DB::raw('MONTH(created_at)', '=', date('m'))但没有好处!

2 个答案:

答案 0 :(得分:3)

您可以使用 Carbon 处理日期,它内置于 laravel 中,所以这里有一些示例我们如何使用它。

use Carbon\Carbon;

也许日期会像这样:

//one day (today)
$date = Carbon::now()->startOfDay;

//one month / 30 days
$date = Carbon::now()->subDays(30)->startOfDay;

App\User::where('field_name', '>=', $date)->orderBy('field_name', 'desc')->limit(3)->get();

您可以在http://carbon.nesbot.com/docs/

查看完整的碳文档 祝你好运!

答案 1 :(得分:0)

为了更好地在模型中创建范围,例如上周的例子:

public function scopeLastWeek($query)
{
    return $query->where($query->created_at->diffInDays($query->created_at->copy()->addWeek()));
}

然后在你的控制器中使用它:

App\User::LastWeek()->orderBy('balance', 'DESC')->limit(3)->get();

让我知道它是否有效..