Laravel 5.2 Eloquent - 按最大日期每个用户只获得一个模型

时间:2016-03-28 16:45:53

标签: php eloquent laravel-5.2

所以我需要获得用户的最后一个贡献日期。有一个贡献模型属于一个报告,其中ShowPowersOf(2,30);是我需要查看以确定这一点。

贡献:

ShowPowersOf(2, getIterCount());

报告:

receipt_date

这就是我要做的事情:

class Contribution extends Base { // Belongs To ----- public function report() { return $this->belongsTo('App\Models\Remittance\Report', 'report_number_id'); } }

所以这里的想法是我想要一个附有报告的贡献与最新的收据日期。但是,我为每个用户提供了一个贡献,但报告关系对所有用户都是空的。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

在查询中尝试using ->distinct()

答案 1 :(得分:0)

我最终能够这样做:

(new App\Models\Remittance\Report)->select(DB::raw('max(receipt_date) as lastReceiptDate, cr_member_transaction.vip_id'))
            ->join('cr_member_transaction', 'cr_report_transaction.report_number_id', '=', 'cr_member_transaction.report_number_id')
            ->whereIN('cr_member_transaction.vip_id', $vipIds)
            ->groupBy('cr_member_transaction.vip_id')->get()->lists('lastReceiptDate', 'vip_id');

希望这有帮助