Laravel 5.4 Klinge foreach-Schleife

Ich bin Gebäude ein Veranstaltungsort manangement system, und auf der landing page, ich m versuchen zu zeigen, alle verfügbaren slots auf die Besucher. Diejenigen, die bereits gebucht sind, angezeigt nicht verfügbar. Ich habe zwei Variablen erstellt, eine, die trägt die info von der Zeit, die Tabelle und die anderen aus der Buchung Tisch und tyring zu verwenden Klinge zu vergleichen und zu zeigen.
Dies ist, wie ich bin zu versuchen, es in 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 

Aber was dieser tut, anstatt zu zeigen, alle Zeiten, für wie viele Datensätze in der Tabelle Buchungen. Wie wenn es zwei Zeilen in der Tabelle Buchungen, zeigt die zweimal, und so weiter. Nur für den Fall, hier ist mein controller-Funktion:

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

Ich habe vor kurzem angefangen, Laravel und kann nicht herausfinden, das Problem. Meine Frage ist, wie kann ich das beheben das n-fache display-Problem und zeigen dem Nutzer, welche Zeiten gebucht werden, und welche sind verfügbar?

Invertieren Sie Ihre Logik. Sie können nicht erwarten, dass code, der mit beginnt @foreach($times as $time) wird nicht zeigen all die Zeiten, wenn mit jeder iteration, die Sie drucken etwas
Wie erhalte ich Zugriff auf eine einzige Instanz von innen $Buchungen ohne Verwendung von foreach? Das einzige, was ich tun müssen, ist vergleichen Sie die gebuchte Spalte mal zur Verfügung.
Entweder durch den index oder durch die Verwendung $model->search(...)

InformationsquelleAutor Muhammad Muneeb ul haq | 2017-06-11

Schreibe einen Kommentar