【问题标题】:Eloquent select records form last 30 days过去 30 天的 Eloquent 选择记录表
【发布时间】:2013-12-29 05:41:47
【问题描述】:

我有一个包含日期的记录列表(例如 11/5/2013,这是一种 MDY 格式),但日期是 VARCHAR 字段。

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

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

【问题讨论】:

    标签: laravel eloquent


    【解决方案1】:

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

    假设您的表中有一个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();
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 2011-08-24
      • 2011-01-03
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多