2017-03-09 5 views
0

Ok, so habe ich ein Array von Objekten in meinem Controller erstelltLaravel: iterieren Objektarray

$displayRooms[$room] = $this->getNextEvent($events, $room); 

return view('schedule')->with(['displayRooms' => $displayRooms]); 

Dann meiner Meinung nach, kann ich über das Array zu durchlaufen und die $ Raum und $ Events

@foreach ($displayRooms as $room => $events) 
    {{ var_dump($events) }} 
@endforeach 

Die var_dump (Ereignisse $) produziert

/home/vagrant/sites/google-cal/storage/framework/views/96faa8d8afe2e0f07db5d96a536009499a3c48a5.php:22: 
object(stdClass)[176] 
    public 'available' => boolean false 
    public 'room' => string 'Room 318' (length=8) 
    public 'summary' => string 'Chem 3090 Himmeldirk' (length=20) 
    public 'startTime' => string '12:00pm' (length=7) 
    public 'endTime' => string '3:00pm' (length=6) 
    public 'startDay' => string '03/21/17' (length=8) 
    public 'endDay' => string '03/21/17' (length=8) 

/home/vagrant/sites/google-cal/storage/framework/views/96faa8d8afe2e0f07db5d96a536009499a3c48a5.php:22:null 

/home/vagrant/sites/google-cal/storage/framework/views/96faa8d8afe2e0f07db5d96a536009499a3c48a5.php:22:null 

/home/vagrant/sites/google-cal/storage/framework/views/96faa8d8afe2e0f07db5d96a536009499a3c48a5.php:22: 
object(stdClass)[226] 
    public 'available' => boolean false 
    public 'room' => string 'Room 513 (Voinovich Room)' (length=25) 
    public 'summary' => string 'Reynolds' (length=8) 
    public 'startTime' => string '1:00pm' (length=6) 
    public 'endTime' => string '3:00pm' (length=6) 
    public 'startDay' => string '03/21/17' (length=8) 
    public 'endDay' => string '03/21/17' (length=8) 

Meine Frage ist, wie kann ich iterieren die Ereignisse in Bl Objekt ade, um auf die Eigenschaften des Objekts zuzugreifen, damit ich sie an eine Teilansicht übergeben kann?

Antwort

0

Wenn ich verstehe, was Sie fragen (und Ihre Datenstruktur) richtig, dann sollte dies funktionieren. Sie können das Array von Ereignisobjekten durchlaufen, um auf jedes einzeln zuzugreifen, und anschließend jedes einzelne iterieren, um auf die einzelnen Eigenschaften/Werte zuzugreifen. Dieser Code sollte in Ihrem ersten foreach verschachtelt sein (ersetzen Sie den Dump damit).

Wenn Sie nicht auf jede Eigenschaft/Wert des Objekts einzeln zugreifen müssen, dann würde ich dies stattdessen empfehlen.

@foreach($events as $event) 
    // do whatever with each event 
    {{ var_dump($event->available) }} 
@endforeach 
+0

diese Fehlermeldung empfangen: Invalid argument für foreach geliefert() –

+0

Sind Sie sicher, dass Sie die foreach innerhalb Ihres bestehenden verschachtelt? Können Sie den genauen Code einfügen, den Sie bei einem Fehler ausführen? –

+0

'@foreach ($ displayRooms als $ room => $ events) @foreach ($ events als $ event) @foreach ($ event als $ prop => $ value) {{var_dump ($ value)}} @endforeach @endforeach @ endforeach' –