我正在建立一个场地管理系统,在登陆页面上,我试图向访客展示所有可用的插槽。已经预订的那些显示为不可用。我创建了两个变量,一个用于携带时间表中的信息,另一个用于预订表和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次显示问题并向用户显示预订的时间和可用的时间?
答案 0 :(得分:8)
我不知道您的数据的外观,但通过查看代码列availble_times
和booking_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/)