繁体   English   中英

Laravel 5.4刀片foreach循环

[英]Laravel 5.4 blade foreach loop

我正在建立一个场地管理系统,在登陆页面上,我试图向访客展示所有可用的插槽。 已经预订的那些显示为不可用。 我创建了两个变量,一个用于携带时间表中的信息,另一个用于预订表和tyring以使用刀片进行比较和显示。 这就是我尝试在刀片中实现它的方式:

@foreach($times as $time)   
 @foreach($bookings as $booking)
    <tr>
        @if($time->availble_times == $booking->booking_time)
            <td>{{$time->availble_times}}: not available</td>
        @else
            <tr><td>{{$time->availble_times}}</td>
        @endif
            </tr>
 @endforeach    
@endforeach 

但是,这样做的目的是在预订表中显示尽可能多的记录。 就像预订表中有两行一样,它会显示两次,依此类推。 以防万一,这是我的控制器功能:

 public function times(){
    $times = Times::all();
    $bookings = Bookings::all();
    return view('/test2')->with('times', $times)->with('bookings', $bookings);
}

我最近开始做Laravel,无法弄清楚这个问题。 我的问题是,如何修复n次显示问题并向用户显示哪些时间被预订,哪些时间可用?

我不知道你的数据的外观如何,而是看你的代码列availble_timesbooking_time是日期字段。 如果Times模型是几个小时的字典(如1. 8.00,2。8:45,3:00),并且预订时间必须在时间记录中,那么您只需要反转循环以显示每个时间预订

@foreach($bookings as $booking)
    @foreach($times as $time)
        <tr>
            <td>{{ getImaginedChairNumber() }}</td>
            <td>{{ $time->availble_times }}</td>
            @if($time->availble_times == $booking->booking_time)
                {{-- There is already booking for that dictionary time --}}
                <td>not available</td>
            @else
                <td>available</td>
            @endif
        </tr>
    @endforeach
@endforeach

应该生产类似的表:

╔═══════╦══════╦═══════════════╗
║ Chair ║ Time ║    Booking    ║
╠═══════╬══════╬═══════════════╣
║ A1    ║ 8:00 ║ not available ║
║ A1    ║ 8:45 ║ available     ║
║ A1    ║ 9:00 ║ not available ║
║ A2    ║ 8:00 ║ not available ║
║ A2    ║ 8:45 ║ not available ║
║ A2    ║ 9:00 ║ not available ║
║ A3    ║ 8:00 ║ available     ║
║ A3    ║ 8:45 ║ available     ║
║ A3    ║ 9:00 ║ not available ║
╚═══════╩══════╩═══════════════╝

这是您期望的输出表的正确形式吗? (我用这个工具绘制ascii表https://senseful.github.io/web-tools/text-table/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM