【问题标题】:Laravel: Iterate over object arrayLaravel:迭代对象数组
【发布时间】:2017-07-30 18:32:39
【问题描述】:

好的,所以我在控制器中创建了一个对象数组

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

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

然后在我看来,我可以遍历数组并获得 $room 和 $events

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

var_dump($events) 产生

/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)

我的问题是如何遍历 Blade 中的 events 对象以访问对象的属性,以便将它们传递给局部视图?

【问题讨论】:

    标签: arrays laravel object iteration blade


    【解决方案1】:

    如果我正确理解了您的要求(以及您的数据结构),那么这应该可以。您可以迭代事件对象数组以单独访问每个对象,然后迭代每个单独的对象以访问每个单独的属性/值。这段代码应该嵌套在你的第一个 foreach 中(用它替换转储)。

    @foreach($events as $event) 
        @foreach ($event as $prop => $value) 
            // do whatever with prop / values
        @endforeach
    @endforeach
    

    如果您不需要一次访问对象的每个属性/值,那么我会推荐这个。

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

    【讨论】:

    • 收到此错误消息:为 foreach() 提供的参数无效
    • 您确定将 foreach 嵌套在现有的 foreach 中吗?出错时能否粘贴您正在运行的确切代码?
    • @foreach ($displayRooms as $room => $events) @foreach($events as $event) @foreach ($event as $prop => $value) {{ var_dump($value) }} @endforeach @endforeach @endforeach
    • $events 不是对象数组吗?
    • 是的,但我认为它可能会在遇到第一个为空的数组时出错。请参阅上面的 var_dump() 粘贴
    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 2014-07-11
    • 2017-03-29
    • 2019-02-27
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多