Laravel 5 - 循环收集

时间:2015-12-16 16:04:30

标签: laravel-5

似乎无法解决这个问题。我有以下代码

dd($this->project->dsReportingDoc->reportingDocUpload);
if(!empty($this->project->dsReportingDoc->reportingDocUpload)) {
    dd("TEST");
    foreach($this->project->dsReportingDoc->reportingDocUpload as $key){

    }
}

现在第一个dd打印出类似下面的内容

Collection {#274 ▼
  #items: array:2 [▼
    0 => ReportingDocUpload {#275 ▶}
    1 => ReportingDocUpload {#276 ▶}
  ]
}

因此,Collection中有两个项目。但是,第二个dd似乎永远不会被执行,因此它必须永远不会进入if语句。

如果集合中有任何内容,我需要循环它们并获取参数。所以我需要先查看该项是否存在。

为什么我的if语句在它不为空时会失败?

由于

2 个答案:

答案 0 :(得分:3)

dd()调试功能停止执行当前请求。因此,您只能调用一次并获得输出 - 请参阅here

这就是您if条件和foreach未执行的原因。

答案 1 :(得分:0)

试试这个

if($this->project->dsReportingDoc->reportingDocUpload) {
   dd("TEST");
   foreach($this->project->dsReportingDoc->reportingDocUpload as $key){

   }
}

你可以做的是,分配

$this->project->dsReportingDoc->reportingDocUpload

到一个变量,所以你不必每次都重写它。