Php 使用函数查询时,Laravel查询失败

Php 使用函数查询时,Laravel查询失败,php,mysql,laravel,laravel-5,eloquent,Php,Mysql,Laravel,Laravel 5,Eloquent,我正在尝试按月获取所有用户组的金额总和。但如果我添加总和,则查询不起作用。它将金额日志作为空白数组返回,但没有总和查询,将所有日志数据作为每月返回 我的问题 $reports = $user->whereHas('groups', function ($query) use($acceptedGroup) { $query->whereIn('groups.name',$acceptedGroup); })->with( array( 'amou

我正在尝试按月获取所有用户组的金额总和。但如果我添加总和,则查询不起作用。它将金额日志作为空白数组返回,但没有总和查询,将所有日志数据作为每月返回

我的问题

$reports = $user->whereHas('groups', function ($query) use($acceptedGroup) {
    $query->whereIn('groups.name',$acceptedGroup);
})->with(
    array(
        'amountLogs' => function($query) use($year){
            $query
            ->select(
                DB::raw('sum(amount) as total')
            )
                ->whereYear('created_at','=',  $year)
                ->groupBy(DB::raw("MONTH(created_at)",'user_id'))->get();
        })
);
如果我删除

            ->select(
                DB::raw('sum(amount) as total')
            )

然后查询工作

如果在查询中对关系创建特定的select,还需要将外键包含到相关表中(在您的情况下,可能是users表)


这允许Eloquent在从数据库加载后关联记录。

如果在查询中对关系创建特定的select,还需要将外键包含到相关表中(在您的情况下,可能是users表)


这允许Elount在从数据库加载后关联记录。

您使用的是哪一版本的laravel?尝试
selectRaw
而不是
select
您使用的是什么版本的laravel?尝试
selectRaw
而不是
select
->select(
   'user_id',
    DB::raw('sum(amount) as total')
)