创建一个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文档中找到明确的解决方案。
谢谢。
答案 0 :(得分:1)
要查找剩余的插槽,请使用尚未填充插槽的左连接:
$timeslotsRemaining = DB::table('timeslots')
->leftJoin('reservations', 'timeslots.id', '=', 'reservations.timeslot_id')
->whereNull('reservations.timeslot_id')
->get();