Mysql laravel控制器中的逐月生成错误

Mysql laravel控制器中的逐月生成错误,mysql,laravel,Mysql,Laravel,我正在尝试执行mysql查询 SELECT COUNT( * ) FROM `Mytable` WHERE `col1` = 'value' GROUP BY MONTH(Date_time) Laravel的相同声明是: DB::table('Mytable')->where('col1','value')->GroupBy(MONTH('Date_time'))->count(); As查询正常,但出现错误: Call to undefined function Ap

我正在尝试执行mysql查询

SELECT COUNT( * ) FROM  `Mytable` WHERE `col1` = 'value' GROUP BY MONTH(Date_time)
Laravel的相同声明是:

DB::table('Mytable')->where('col1','value')->GroupBy(MONTH('Date_time'))->count();
As查询正常,但出现错误:

Call to undefined function App\Http\Controllers\MONTH()

任何建议都会有帮助

这将是您的代码:

DB::table('Mytable')->where('col1','value')
    ->groupBy(function($date) {
        return Carbon::parse($date->Date_time)->format('m'); // grouping by months
    })
    ->count();
希望这能奏效

而不是:

->GroupBy(MONTH('Date_time'))
试一试


因为MONTH()是一个mysql函数,而不是laravel函数。

呃,很明显,laravel没有
MONTH(…)
是sql,对吗?最简单的方法是。。原始数据库..可能的副本看起来像是在mysql上运行的,但是很好idea@jyotimishra听起来不错:)这看起来像是在php上运行的,但这是个好主意
->groupBy(DB::raw("MONTH('Date_time')"))