Laravel:如何显示可用时隙列表

时间:2018-10-15 13:15:30

标签: mysql laravel orm eloquent

创建一个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文档中找到明确的解决方案。

谢谢。

1 个答案:

答案 0 :(得分:1)

要查找剩余的插槽,请使用尚未填充插槽的左连接:

$timeslotsRemaining = DB::table('timeslots')
    ->leftJoin('reservations', 'timeslots.id', '=', 'reservations.timeslot_id')
    ->whereNull('reservations.timeslot_id')
    ->get();