似乎无法解决这个问题。我有以下代码
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语句在它不为空时会失败?
由于
答案 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
到一个变量,所以你不必每次都重写它。