最近30天的雄辩选择记录

时间:2013-12-11 09:56:47

标签: laravel eloquent

我有一个有日期的记录列表(如11/5/2013,这是一个MDY表单),但日期是VARCHAR个字段。

我想选择过去30天内的所有记录,但不知道如何将它们转换为日期格式,因为我在日期字段中得到NULL。

我正在使用Laravel和Eloquent ORM,我该如何做到这一点?

1 个答案:

答案 0 :(得分:17)

您的模型中需要一个访问者。

假设您的表格中有dates字段。

public function getDatesAttribute($value)
   {
     $this->attributes['dates'] = Carbon::createFromFormat('m/d/Y', $value);
   }

上面的函数会将日期从字符串转换为Carbon对象。默认情况下,Laravel支持Carbon。

现在来自你的控制器:

$test = Test::where('dates', '>=', Carbon::now()->subMonth())->get();

我没有测试过代码,但应该可以使用。 :)