Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:禁用“;“预订”;时间范围内的时间_Php_Mysql_Laravel_Laravel Blade - Fatal编程技术网

Php Laravel:禁用“;“预订”;时间范围内的时间

Php Laravel:禁用“;“预订”;时间范围内的时间,php,mysql,laravel,laravel-blade,Php,Mysql,Laravel,Laravel Blade,我试图在一天中的一定时间内禁用一个盒子 一天从员工设定的日期/时间范围开始,因此,例如,如果员工在周二9-5点工作,并且服务时间为1小时,那么他们的最后预订时间为下午4点,因为这是预订的最后一个工作时间段。这个逻辑很好,但是它在我挣扎的一天内插入了“预定”的时段 @php $employee_booking = $bookings->where('employee_id',$employeedetails->id)->where('start_date', date('Y-m-

我试图在一天中的一定时间内禁用一个盒子

一天从员工设定的日期/时间范围开始,因此,例如,如果员工在周二9-5点工作,并且服务时间为1小时,那么他们的最后预订时间为下午4点,因为这是预订的最后一个工作时间段。这个逻辑很好,但是它在我挣扎的一天内插入了“预定”的时段

@php
$employee_booking = $bookings->where('employee_id',$employeedetails->id)->where('start_date', date('Y-m-d', strtotime($_GET['booking_date'])))->all();
@endphp

@for ($i=$start_time;$i<=$end_time;$i = $i + 30*60)
    @foreach($employee_booking as $booking)
        @if($i >= strtotime($booking->start_time) && $i <= strtotime($booking->end_time))
            Booking [unavailable] {{ $booking->start_time }} - {{ $booking->end_time }} ({{$booking->title}}) <br>
        @else
            {{ date('H:i a', $i) }} [available] <br>
        @endif
    @endforeach
@endfor
@php
$employee\u booking=$bookings->where($employee\u id',$employeedetails->id)->where($start\u date',date($Y-m-d',strottime($\u GET['booking\u date'))->all();
@endphp
@对于($i=$start\u time;$i=strottime($booking->start\u time)&&$i end\u time))
预订[不可用]{{$Booking->start_time}-{{{$Booking->end_time}({{{$Booking->title})
@否则 {{date('H:ia',$i)}}[可用]
@恩迪夫 @endforeach @结束
在上面的示例中,它基于员工从指定为:8am-4pm的数据库中提取的工作时间。请查看此屏幕截图(要添加到线程的列表很长):

正如您从输出的数据中看到的,它们在重复时间,因为它在foreach循环中,但我不确定是否有其他方法可以让这些数据工作

此数据的目的是将其转化为更具表现力的内容,如:-从本例中可以看出,无法获得的预订已被屏蔽,需要对当天的所有其他预订重复此操作,而不仅仅是该示例中的预订

我假设它必须进入阵列,然后以某种方式通过,但这是我真正挣扎的一步

@php
$employee_booking = $bookings->where('employee_id',$employeedetails->id)->where('start_date', date('Y-m-d', strtotime($_GET['booking_date'])))->all();
@endphp

@for ($i=$start_time;$i<=$end_time;$i = $i + 30*60)
    @foreach($employee_booking as $booking)
        @if($i >= strtotime($booking->start_time) && $i <= strtotime($booking->end_time))
            Booking [unavailable] {{ $booking->start_time }} - {{ $booking->end_time }} ({{$booking->title}}) <br>
        @else
            {{ date('H:i a', $i) }} [available] <br>
        @endif
    @endforeach
@endfor
我希望这是足够的信息,有人来帮助我

提前谢谢


Matt

如果是我,我会从sql开始,然后尝试找出如何将其输入到我的代码中。@草莓嗨,我已经从sql中获得了数据,这就是我的问题的要点。如何将其显示在我的代码中?您的查询(如果我理解的话)只会返回预订开始日期与给定日期一致的给定员工的预订。所以,大概一次服务的持续时间不会超过一天吧?@草莓说得对。假设服务时间为1小时,员工每天工作7小时,上午9点和10点有两次预订。在前端向客户显示的视图中,上午9点和上午10点应为“禁用”,但应显示截止员工日之前的所有其他可用时间,在这种情况下,截止日期为用户“一天结束”时间前1小时。员工和用户是同一件事吗?