我有订单表,并为每个用户每周付款表。我想告诉用户,他将采取总付款计数取决于星期。我已经创建了查询,但在刀片式服务器端,当我尝试通过eloquent访问其他表时,它给出的查询不存在于此集合中。
如果我不使用group by函数,它就可以工作。但使用group by函数则不能
$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发布于 2019-08-22 15:29:43
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();发布于 2019-08-22 15:43:57
假设您的表是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');发布于 2019-08-22 17:51:49
Laravel Collection groupBy()函数返回分组集合的集合。
$earningGroups = user()->orders()
->where('payment_status',0)
->where('status',1)
->get()
->groupBy(function($earning) {
return Carbon::parse($earning->created_at)->format('W');
});现在这是一个收入组的集合,而不是收入。
@foreach($earningGroups as $earcningGroupName => $earcningGroup)
// So here you have a group or earnings
// I don't know why did you want to group.
// For an example I will print the group name as a table row here.
// But do whatever you want.
<tr>
<td>{{ $earningGroupName }}</td>
</tr>
// So if you want to loop through earnings, you have to loop again.
@foreach($earningGroup 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>
</tr>
@endforeach
@endforeachhttps://stackoverflow.com/questions/57604045
复制相似问题