我有以下代码来获取记录:
App\User::orderBy('balance', 'DESC')->limit(3)->get();
如何获取今天,上周和上个月的记录?
我添加DB::raw('MONTH(created_at)', '=', date('m'))
但没有好处!
答案 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();
查看完整的碳文档
祝你好运!
答案 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();
让我知道它是否有效..