Laravel-显示最近30天的用户

jsm*_*er3 1 laravel laravel-5

我有一个Laravel查询,看起来像这样

$users = DB::table("users")
                   ->select('id')
                   ->where('accounttype', 'standard')
                   ->get()->all();
Run Code Online (Sandbox Code Playgroud)

它正在工作并返回所有标准帐户的ID,我试图将其限制为仅返回过去30天(创建用户的日期作为时间戳存储在“ created_at”中)的结果

最好在查询中执行此操作,还是稍后再处理结果?

Chr*_*ris 5

您可以在whereDate子句中使用carbon :

use Carbon\Carbon;

$users = DB::table("users")
                   ->select('id')
                   ->where('accounttype', 'standard')
                   ->whereDate('created_at', '>', Carbon::now()->subDays(30))
                   ->all();
Run Code Online (Sandbox Code Playgroud)

如注释中所述,请在查询中进行尽可能多的操作,直到发现性能问题或查询变得不可读为止。