最近30天的雄辩选择记录

jOp*_*cic 4 laravel eloquent

我有一个有日期的记录列表(比如11/5/2013,那是一个MDY表格),但日期是VARCHAR字段.

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

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

Ana*_*nam 18

您的模型中需要一个访问器.

假设你dates的桌子上有一个字段.

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

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

现在来自你的控制器:

$test = Test::where('dates', '>=', Carbon::now()->subMonth())->get();
Run Code Online (Sandbox Code Playgroud)

我没有测试过代码但应该可以工作.:)