Laravel 5.4 Blade foreach循环

Muh*_*haq 4 php laravel-5 laravel-blade laravel-5.4

我正在建立一个场地管理系统,并且在目标网页上,我试图向访客显示所有可用的广告位。已预订的客房显示为不可用。我创建了两个变量,一个变量包含时间表中的信息,另一个变量包含预订表中的信息,并尝试使用Blade进行比较和显示。这就是我试图在刀片中实现它的方式:

@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 
Run Code Online (Sandbox Code Playgroud)

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

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

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

Bar*_*zek 10

我不知道您的数据看起来如何,但是通过查看您的代码列availble_timesbooking_time日期字段。如果Times模型是小时的字典(例如1. 8.00,2. 8:45,3. 9:00),并且预订时间必须在Times记录中,那么您只需要反转循环即可显示每个时间订票

@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
Run Code Online (Sandbox Code Playgroud)

应该产生类似的表:

????????????????????????????????
? 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 ?
????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

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