相当于Laravel查询生成器中的MySQL YEAR()


MySQL YEAR() equivalent in Laravel query builder

使用MySQL,我可以使用这样的YEAR()函数来根据WHERE子句中日期字段的年份进行筛选:

SELECT noworkorder FROM workorders WHERE YEAR(date)=2015;

在Laravel中,我当然可以用一个原始的表达来实现同样的事情:

$data = DB::table('workorders')
       ->select('noworkorder')
       ->where(DB::raw('YEAR(date)=2015'))
       ->orderby('noworkorder', 'desc')
       ->get();

但是,有没有一种方法可以在没有原始表达式的情况下做到这一点?

查询生成器有一个whereYear方法:

$data = DB::table('workorders')
   ->select('noworkorder')
   ->whereYear('date', '=', 2015)
   ->orderby('noworkorder', 'desc')
   ->get();