如何将 now() 与 Eloquent 一起使用?
How to use now() with Eloquent?
将 now() 与 Eloquent 一起使用的最佳方法是什么?我的意思是,return 今天的日期是否有本地 Eloquent 函数?我正在使用 Slim 框架,对于此查询,我找到的唯一解决方案是:
$now = date('Y/m/d H:i:s', time());
$articles = Article::where('created_at', '<', $now)
->orderBy('created_at', 'DESC')
->limit(10)
->get();
有点乱,不是吗?
我可以使用 Carbon,但它会产生额外的依赖性...
谢谢
这里有两个选择:要么使用 DB::raw
方法让 where
方法按原样处理给定的表达式:
$articles = Article::where(DB::raw('created_at < NOW()'))
->orderBy('created_at', 'DESC')
->limit(10)
->get();
...或使用whereRaw
方法:
$articles = Article::whereRaw('created_at < NOW()')
->orderBy('created_at', 'DESC')
->limit(10)
->get();
作为旁注,Eloquent 有几个用于日期时间相关处理的辅助方法 - whereDate
、whereMonth
、whereDay
、whereYear
和 whereTime
。我真的不确定在这种特定情况下是否可以使用它们,但它们可能会在其他地方有所帮助。
将 now() 与 Eloquent 一起使用的最佳方法是什么?我的意思是,return 今天的日期是否有本地 Eloquent 函数?我正在使用 Slim 框架,对于此查询,我找到的唯一解决方案是:
$now = date('Y/m/d H:i:s', time());
$articles = Article::where('created_at', '<', $now)
->orderBy('created_at', 'DESC')
->limit(10)
->get();
有点乱,不是吗? 我可以使用 Carbon,但它会产生额外的依赖性...
谢谢
这里有两个选择:要么使用 DB::raw
方法让 where
方法按原样处理给定的表达式:
$articles = Article::where(DB::raw('created_at < NOW()'))
->orderBy('created_at', 'DESC')
->limit(10)
->get();
...或使用whereRaw
方法:
$articles = Article::whereRaw('created_at < NOW()')
->orderBy('created_at', 'DESC')
->limit(10)
->get();
作为旁注,Eloquent 有几个用于日期时间相关处理的辅助方法 - whereDate
、whereMonth
、whereDay
、whereYear
和 whereTime
。我真的不确定在这种特定情况下是否可以使用它们,但它们可能会在其他地方有所帮助。