制作一个Laravel项目,使人们可以保留1.5小时的某些产品。
在我的控制器中,我正在查询一个已经保留的时隙变量。
接下来,我想从可用时隙中撤出那些时隙。
$filteredTimeSlots = DB::table('timeslots')
->join('reservations', 'timeslots.id', '=', 'reservations.timeslot_id')
->where('product_id', $product->id)
->get();
$timeslots = Timeslot::all();
现在,
$timeslots
保存所有时隙。但是这里也是在$filteredTimeSlots
中指定的那些插槽。总共我有6个产品。每个可以在相同的时隙保留。这就是为什么我添加了“ where”语句。
这可能是一个简单的修复,但似乎无法在Laravel文档中找到明确的解决方案。
提前致谢。
最佳答案
要查找剩余的插槽,您要使用尚未填充插槽的左连接:
$timeslotsRemaining = DB::table('timeslots')
->leftJoin('reservations', 'timeslots.id', '=', 'reservations.timeslot_id')
->whereNull('reservations.timeslot_id')
->get();