这是一个对大家来说很有趣的事情。我发现自己陷入了实施难题。
我正在 Laravel 中开发一个预订应用程序,允许人们在特定时间预订空间的房间和设备。可用设备的数量有限,因此必须根据与预订相关的时段来查询库存量。
我以为我已经通过迭代同时发生的“其他预订”并计算当前正在使用的物品来解决问题 -> 然后对照库存中的可用物品进行检查。
对于我 90% 的测试来说,这工作得很好,但我刚刚发现了一个不允许我这样做的错误。
$guitarheadcount = 0;
$guitarcabcount = 0;
$guitarcombocount = 0;
$bassheadcount = 0;
$basscabcount = 0;
$basscombocount = 0;
$drumkitcount = 0;
$cymbalscount = 0;
$otherbookings = Booking::where('Room_id', '!=', $bookinginfo->Room_id)
->where(function ($query) use ($begin, $end) {
$query->where(function ($q) use ($begin, $end) {
$q->where('Booking_start', '>=', $begin)
->where('Booking_start', '<', $end);
})->orWhere(function ($q) use ($begin, $end) {
$q->where('Booking_start', '<=', $begin)
->where('Booking_end', '>', $end);
})->orWhere(function ($q) use ($begin, $end) {
$q->where('Booking_end', '>', $begin)
->where('Booking_end', '<=', $end);
})->orWhere(function ($q) use ($begin, $end) {
$q->where('Booking_start', '>=', $begin)
->where('Booking_end', '<=', $end);
});
})->get();
}
然后,如果计数最终大于库存量,我使用单独的 if 语句来重定向。
实际错误的一个示例是:
2 套鼓有库存。预订一个下午 1-2 点的房间……然后在同一房间预订另一个下午 2-3 点的房间。两者都需要鼓组。
如果我随后尝试在下午 1 点到 3 点之间在不同的空间进行预订,即使一组鼓再次空闲(如果这有意义),计数也已经是 2。
我真的很困惑。我无法想象我是否需要:
继续“计数”,但生成一些东西,为与另一个(?)位于同一房间的每件物品扣除 1。
我是否应该完全放弃计数并为每个设备项目编写单独的查询......以及我什至会如何做到这一点!
任何帮助将非常感激。
达令说
慕娘9325324