Laravel每周按雄辩的收集错误分组

时间:2019-08-22 07:23:54

标签: laravel eloquent

我有订单表,每个用户每周都有付款表。 我想向用户显示,他将根据周数来支付总付款额。 我已经创建了查询,但是在刀片端,当我尝试通过口才来访问其他表时,该查询在此集合中没有退出。

如果我不使用按功能分组,则可以使用。但是通过功能分组确实可以实现

$earnings = user()->orders()->where('payment_status',0)- 
>where('status',1)->get()->groupBy(function($date) {
        return Carbon::parse($date->created_at)->format('W');
    });

在刀片服务器端,我的代码如下:

@foreach($earnings as $earning)
    <tr>
    <td>{{$earning->user->name}}</td>
    <td>{{$earning->order->commission}}</td>
    <td>{{$earning->user->bank}}</td>
    <td>{{$earning->user->iban}}</td>
    <td>{{$earning->user->phone}}</td>
@endforeach

3 个答案:

答案 0 :(得分:0)

get()应该在最后:

$earnings = user()->orders()
              ->where('payment_status',0)
              ->where('status',1)
              ->groupBy('created_at')
              ->get();

如何使用DATE_FORMAT函数:

$earnings = user()->orders()
              ->where('payment_status',0)
              ->where('status',1)
              ->groupBy(DB::raw("DATE_FORMAT(created_at, '%W')"))
              ->get();

答案 1 :(得分:0)

假设您的表是orders,您可以这样做:

$earnings = user()->orders()->select('orders.*', DB::raw("DATE_FORMAT(created_at, '%W') as week"))
    ->where('payment_status',0)
    ->where('status',1)
    ->get()->groupBy('week');

答案 2 :(得分:0)

Laravel集合FooBar函数返回分组集合的集合。

groupBy()

现在,这是收入组的集合,而不是收入。

$earningGroups = user()->orders()
    ->where('payment_status',0)
    ->where('status',1)
    ->get()
    ->groupBy(function($earning) {
        return Carbon::parse($earning->created_at)->format('W');
    });