按日期分组 MySQL 结果 PHP
Grouping MySQL results by date in PHP
所以我发现自己陷入了困境。我将 Laravel 与 MySQL 结合使用,为我的工作构建一个 in/punch 出众的网站。我这样做部分是因为我讨厌那里的其他解决方案,部分是因为我想学习 Laravel 框架。我已经整理好打孔系统并且一切正常,但现在我正在尝试设置仪表板,它将列出当前和过去的用户打孔。
如果用户在一天内多次打卡和打卡,我想只显示一次日期以使事情看起来更清晰。
这是我的意思的一个例子:
现在左侧的所有列中都有日期。
现在我是 Laravel 的超级新手,所以我知道这段代码不是很好,我仍然需要对其进行一些修复,但是谁能帮我弄清楚如何对结果进行分组,例如上图?
这是我当前的代码:
<?php $punches = App\User::find(Auth::user()->id)->punches()->orderBy('created_at', 'desc')->get() ?>
<table class="table table-striped table-bordered">
<th>Date</th>
<th>In Time</th>
<th>Out Time</th>
@foreach($punches as $punch)
<tr>
<td>{{Carbon\Carbon::parse($punch->created_at)->format('F d, Y')}}</td>
<td>{{Carbon\Carbon::parse($punch->inPunch)->format('h:i A')}}</td>
<td>{{Carbon\Carbon::parse($punch->outPunch)->format('h:i A')}}</td>
</tr>
@endforeach
</table>
欢迎提问。我会尽力尽快回答。请谢谢!
看来不需要分组。这只是显示日期何时更改的问题。每次新的 $punch 日期与之前的 $punch 不同时显示它。
<?php $current_date = null; ?>
@foreach($punches as $punch)
<tr>
<td>
@if ($punch->created_at)->format('F d, Y') != $current_date)
<?php $current_date = $punch->created_at)->format('F d, Y'); ?>
{{ $current_date }}
@endif
</td>
<td>{{Carbon\Carbon::parse($punch->inPunch)->format('h:i A')}}</td>
<td>{{Carbon\Carbon::parse($punch->outPunch)->format('h:i A')}}</td>
</tr>
@endforeach
对于 blade 模板中的 'ugly' php 代码,我深表歉意。我想展示所提出的解决方案的想法。
所以我发现自己陷入了困境。我将 Laravel 与 MySQL 结合使用,为我的工作构建一个 in/punch 出众的网站。我这样做部分是因为我讨厌那里的其他解决方案,部分是因为我想学习 Laravel 框架。我已经整理好打孔系统并且一切正常,但现在我正在尝试设置仪表板,它将列出当前和过去的用户打孔。
如果用户在一天内多次打卡和打卡,我想只显示一次日期以使事情看起来更清晰。
这是我的意思的一个例子:
现在左侧的所有列中都有日期。
现在我是 Laravel 的超级新手,所以我知道这段代码不是很好,我仍然需要对其进行一些修复,但是谁能帮我弄清楚如何对结果进行分组,例如上图?
这是我当前的代码:
<?php $punches = App\User::find(Auth::user()->id)->punches()->orderBy('created_at', 'desc')->get() ?>
<table class="table table-striped table-bordered">
<th>Date</th>
<th>In Time</th>
<th>Out Time</th>
@foreach($punches as $punch)
<tr>
<td>{{Carbon\Carbon::parse($punch->created_at)->format('F d, Y')}}</td>
<td>{{Carbon\Carbon::parse($punch->inPunch)->format('h:i A')}}</td>
<td>{{Carbon\Carbon::parse($punch->outPunch)->format('h:i A')}}</td>
</tr>
@endforeach
</table>
欢迎提问。我会尽力尽快回答。请谢谢!
看来不需要分组。这只是显示日期何时更改的问题。每次新的 $punch 日期与之前的 $punch 不同时显示它。
<?php $current_date = null; ?>
@foreach($punches as $punch)
<tr>
<td>
@if ($punch->created_at)->format('F d, Y') != $current_date)
<?php $current_date = $punch->created_at)->format('F d, Y'); ?>
{{ $current_date }}
@endif
</td>
<td>{{Carbon\Carbon::parse($punch->inPunch)->format('h:i A')}}</td>
<td>{{Carbon\Carbon::parse($punch->outPunch)->format('h:i A')}}</td>
</tr>
@endforeach
对于 blade 模板中的 'ugly' php 代码,我深表歉意。我想展示所提出的解决方案的想法。