gpt4 book ai didi

mysql - 如果具有相同的日期,如何使用 foreach 并隐藏其他结果?

转载 作者:行者123 更新时间:2023-11-29 15:42:03 25 4
gpt4 key购买 nike

我需要获取具有相同日期和相同product_id的每个产品的slot,并隐藏其他数据(如果日期已经存在)第一次展示
我在 Controller 中使用下面的代码来添加具有相同日期的所有插槽

public function show($id) {
$product = Products::findOrFail($id);
$bookings = Bookings::get();
$slots = Bookings::groupBy(['date', 'product_id'])->selectRaw('sum(slots) as total, date, product_id')->get();

return view('service', compact('product', 'bookings', 'slots'));
}

下面我用它来过滤掉每个产品

@foreach ($bookings as $booking)
@if ($booking->product_id == $product->id)
@foreach ($slots as $slot)
@if ($booking->date == $slot->date && $booking->product_id == $slot->product_id)
<li class="list-group-item">
{{$slot}}
</li>
@endif
@endforeach
@endif
@endforeach

但结果始终显示具有相同日期和相同槽位的所有日期,因为它已经相加

最佳答案

可以使用一个数组,将已经显示的日期推送到该数组,在显示之前检查日期是否存在于数组中,如果不存在则显示,否则不显示

    @foreach ($bookings as $booking)
@if ($booking->product_id == $product->id)
$dates = [];
@foreach ($slots as $slot)
@if ($booking->date == $slot->date && $booking->product_id == $slot->product_id)
@if(!isset($dates[$slot->date]))
<?php $dates[$slot->date] = true;
<li class="list-group-item">
{{$slot}}
</li>
@endif
@endif
@endforeach
@endif
@endforeach

应该更好地在 Controller 中实现此逻辑,例如,我只建议您解决方案。

关于mysql - 如果具有相同的日期,如何使用 foreach 并隐藏其他结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57525975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com