我有一个雄辩的模型(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/

10-13 02:56