web-dev-qa-db-ja.com

Laravel 5.4ブレードforeachループ

会場管理システムを構築しています。ランディングページで、利用可能なすべてのスロットを訪問者に表示しようとしています。すでに予約されているものは利用不可として表示されます。私は2つの変数を作成しました。1つはタイムテーブルからの情報を持ち、もう1つは予約テーブルからの情報を持ち、ブレードを使用して比較および表示するためにタイリングします。これは私がブレードに実装しようとしている方法です:

@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 

しかし、これが代わりに行うことは、bookingsテーブルの同じ数のレコードについて常に表示することです。予約テーブルに2つの行がある場合と同様に、時刻が2回表示されます。念のため、これが私のコントローラー関数です:

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

私は最近Laravelでこの問題を理解できませんでした。私の質問は、n回の表示の問題をどのように修正し、予約された時間と利用可能な時間をユーザーに示すことができますか?

私はあなたのデータがどのように見えるのかわかりませんが、コード列を見てavailble_timesおよびbooking_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

同様のテーブルを作成する必要があります:

╔═══════╦══════╦═══════════════╗
║ 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/

14