【问题标题】:Laravel time tableLaravel 时间表
【发布时间】:2017-03-15 19:34:16
【问题描述】:

我正在 Laravel 中制作一个时间表,用户可以在 10:00 选择一个字段,并在 12:00 之前保留设备。

我无法显示从何时到何时保留设备的范围

@while($scheduler_start_time < $scheduler_end_time)
    <tr>
        <td>{{$scheduler_start_time->format('H:i:s')}}</td>
        @foreach($equipment as $instrument)
            <td>
                <a href="#">

                    @if($instrument->reservations->where('reserved_from','=', $scheduler_start_time)
                    ->where('reserved_to','<=', $scheduler_end_time)->first() != null)

                        HERE

                    @else
                        &nbsp;
                    @endif
                </a>
            </td>
        @endforeach
        <?php $scheduler_start_time->addMinutes(30) ?>
    </tr>
@endwhile

一个工具可以有多个保留:

这就是我在预订reserved_from 等于时间时得到的结果。如果我使用 &gt;= 我正在获取两条记录。我需要一种方法来查看,例如: Instrument3 从 6:30 到 7:30 保留,然后从 9:30 到 10:00

【问题讨论】:

    标签: php laravel blade


    【解决方案1】:

    除非我误解了您的问题,否则我认为您只需要在“reserved_from”上添加一个上限。这行得通吗?

    @if($instrument->reservations->where('reserved_from','>=', $scheduler_start_time)->where('reserved_from', '<', $scheduler_end_time)->where('reserved_to','<=', $scheduler_end_time)->first() != null)
    

    更新:由 OP 解决

    @if($instrument->reservations ->where('reserved_from','<=', $scheduler_start_time) ->where('reserved_to','>=', $scheduler_start_time)->first() != null
    

    【讨论】:

    • 不幸的是,没有...$scheduler_start_time 从 6:00 开始,$scheduler_end_time 固定在 20:00,所以这会选择一些不应选择的行
    • 啊,好的。那么,也许我们需要给reserved_to加上上限呢? -&gt;where('reserved_from', '&lt;=', $scheduler_start_time)-&gt;where('reserved_to', '&gt;=', $scheduler_start_time)-&gt;where('reserved_to','&lt;=', $scheduler_end_time)
    • 我昨天已经解决了,你在正确的轨道上,你可以更新它@if($instrument-&gt;reservations -&gt;where('reserved_from','&lt;=', $scheduler_start_time) -&gt;where('reserved_to','&gt;=', $scheduler_start_time)-&gt;first() != null)
    • 好!我确实需要补充一点,在一个页面上运行这么多查询会给您的数据库带来巨大压力。您可以查看eager loading 并缓存您的结果。
    • 好吧,我用reservationsreservations.user 急切地加载equipment,所以我想它会正常工作
    猜你喜欢
    • 2015-03-02
    • 2022-10-30
    • 2020-12-13
    • 2014-05-16
    • 2018-12-15
    • 2019-03-15
    • 1970-01-01
    • 2018-08-24
    • 2020-01-18
    相关资源
    最近更新 更多