【发布时间】:2017-11-13 05:23:37
【问题描述】:
我正在构建一个场地管理系统,并且在登录页面上,我试图向访问者显示所有可用的位置。已预订的显示为不可用。我创建了两个变量,一个包含时间表中的信息,另一个包含预订表中的信息,并使用刀片进行比较和显示。 这就是我试图在刀片中实现它的方式:
@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 次显示问题并向用户显示哪些时间已预订,哪些时间可用?
【问题讨论】:
-
颠倒你的逻辑。你不能指望以
@foreach($times as $time)开头的代码不会一直显示,如果每次迭代都打印一些东西 -
如何在不使用 foreach 的情况下从 $bookings 内部访问单个实例?我唯一需要做的就是将预订的列时间与可用的列时间进行比较。
-
通过索引或使用
$model->search(...)
标签: php laravel-5 laravel-5.4 laravel-blade