现在使用Eloquent的最佳方法是什么?我的意思是,是否有一个本土的Eloquent函数可以返回今天的日期?我使用Slim框架,对于此查询,我找到的唯一解决方案是:
$now = date('Y/m/d H:i:s', time());
$articles = Article::where('created_at', '<', $now)
->orderBy('created_at', 'DESC')
->limit(10)
->get();
它有点乱,不是吗? 我可以使用碳,但它会产生额外的依赖......
由于
答案 0 :(得分:2)
这里有两个选项:使用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
。我真的不确定在这种情况下可以使用它们,但它们可能会在其他地方变得有用。