Php Laravel-无法在第一个关系中循环,但在关系中可以正常工作

Php Laravel-无法在第一个关系中循环,但在关系中可以正常工作,php,laravel,laravel-5,laravel-5.4,Php,Laravel,Laravel 5,Laravel 5.4,我的当前嵌套for循环: @foreach($auditResults->map->questionDetail as $detail) @include('dropdownQuestion', [ 'answer' => $auditResults, 'detail' => $detail, 'question' => $detail->auditQuestion ]) @endforeach

我的当前嵌套for循环:

@foreach($auditResults->map->questionDetail as $detail)
    @include('dropdownQuestion', [
        'answer' => $auditResults,
        'detail' => $detail,
        'question' => $detail->auditQuestion
    ])
@endforeach
如您所见,我想在循环中返回
$auditResults
作为
应答
,但当前设置不起作用

如果我将for循环更改为此(这在逻辑上是有意义的):

我尝试获取非对象的属性时得到

如何在不获取非对象属性的情况下循环并返回
$auditResults
?非常感谢

DD$auditResults集合:

Collection {#400 ▼
  #items: array:18 [▼
    0 => Audit {#404 ▼
      #fillable: array:4 [▶]
      #attributes: array:7 [▶]
      #original: array:7 [▶]
      #observables: []
      #relations: array:1 [▼
        "questionDetail" => AuditQuestionDetail {#426 ▶}
      ]
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #guarded: array:1 [▶]
    }
    1 => Audit {#405 ▶}
    2 => Audit {#406 ▶}
    3 => Audit {#407 ▶}
    4 => Audit {#408 ▶}
    5 => Audit {#409 ▶}
    6 => Audit {#410 ▶}
    7 => Audit {#411 ▶}
    8 => Audit {#412 ▶}
    9 => Audit {#413 ▶}

我假设map是一对一的关系。使用前应检查是否存在任何关系数据:

@foreach($auditResults as $result)
  @if ($result->map->count())
    @if ($result->map->questionDetail->count())
      @foreach($result->map->questionDetail as $detail)
          @include('dropdownQuestion', [
              'answer' => $result,
              'detail' => $detail,
              'question' => $detail->map->auditQuestion
          ])
      @endforeach
     @endif
  @endif
@endforeach

能否提供
$auditResults
dd()
?@manniL-附在描述后。我认为错误在$detail->map->auditQuestion上。你有地图吗?移除线路,看看它是否有效。这里的想法与@train\u fox类似。我不明白为什么在这种情况下需要调用
map
@foreach($result->questionDetail作为$detail)
如果我将其更改为
@foreach($result->questionDetail作为$detail)
,错误显示在@train_fox对
$detail->map->auditQuestion的原始建议上。我是否需要另一个嵌套循环来访问此循环?感谢您的回复,不幸的是,上面返回了对null上的成员函数count()的
调用。哪一个?地图或问题细节?它实际上并没有说它在哪里失败。上面写着第108行,在for循环上方的一个空行上。当然,你错过了一些关系。检查你的人际关系。尝试在tinker中分别提取关系以检查关系。
@foreach($auditResults as $result)
  @if ($result->map->count())
    @if ($result->map->questionDetail->count())
      @foreach($result->map->questionDetail as $detail)
          @include('dropdownQuestion', [
              'answer' => $result,
              'detail' => $detail,
              'question' => $detail->map->auditQuestion
          ])
      @endforeach
     @endif
  @endif
@endforeach