我有一个雄辩的模型(Test
)与一个名为tests
的MySQL表相关联,具有以下结构:
tests
id int
created_at date
updated_at date
correct boolean
我试图仅选择今天,过去7天内和过去一个月内创建的那些测试,如下所示(伪代码):
$todays_tests = Test::where('created_at','=', 'today');
$this_weeks_tests = Test::where('created_at','=', 'last 7 days');
$this_months_tests = Test::where('created_at','=', 'last month');
我确定Laravel提供了一种简单的方法来实现此目的,但是我不确定如何最好地做到这一点。大概我需要使用原始的MySQL查询吗?
非常感谢,
最佳答案
我相信您可以使用Carbon
插件做一些不错的事情。碳文件:https://github.com/briannesbitt/Carbon
例如,对于今天创建的示例,如果将其添加到“测试”模型中:
public function scopeCreatedToday($query)
{
return $query->whereBetween('created_at', array(Carbon::today(), Carbon::today()->addDay()));
}
您将能够执行:
$tests = Test::createdToday()->get();
。关于php - 如何从上周或上个月今天插入的MySQL数据库中选择所有Eloquent模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24011954/