php - Laravel - 循环遍历嵌套集合

标签 php laravel laravel-5 foreach laravel-blade

获取所有必需数据的函数:

$auditResults = Audit::where('audit_id', $id)
    ->with('questionDetail')
    ->with('questionDetail.auditQuestion')
    ->get();

返回(流线型):

Audit {#427 ▼
  #relations: array:1 [▼
    "questionDetail" => AuditQuestionDetail {#449 ▼
      #relations: array:1 [▼
        "auditQuestion" => AuditQuestion {#471 ▼
          #original: array:5 [▶]
        }
      ]
    }
  ]
}

对于每个 Audit,我如何在 View 中循环以达到 auditQuestion 关系?

我试过:

@foreach($auditResults->questionDetail->auditQuestion as $answer)

但是我得到:

Undefined property: Illuminate\Database\Eloquent\Collection::$questionDetail

非常感谢。

** 第一关系的问题:**

   Collection {#470 ▼
  #items: array:18 [▼
    0 => Audit {#427 ▼
      #fillable: array:4 [▶]
      #attributes: array:7 [▶]
      #original: array:7 [▶]
      #relations: array:1 [▼
        "questionDetail" => AuditQuestionDetail {#449 ▼
          #table: "audit_questions_details"
          #fillable: array:3 [▶]
          #attributes: array:7 [▶]
          #original: array:7 [▼
            "id" => 2
            "audit_question_id" => 2
            "question_number" => 1
            "comment" => 1
            "header" => 0
            "created_at" => "2017-03-26 13:40:18"
            "updated_at" => "2017-03-26 13:40:18"
          ]

最佳答案

在 Laravel 5.4 中,你可以使用 higher order messages干净地做到这一点:

@foreach($auditResults->map->questionDetail->map->auditQuestion as $answer)

关于php - Laravel - 循环遍历嵌套集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029729/

相关文章:

mysql - 将特定 CONCAT MYSQL 转换为 PDO Laravel

php - 具有个人最大尝试次数的排队作业,如何?

php - Facade.php 第 216 行中的 FatalErrorException:调用未定义的方法 Illuminate\Foundation\Application::missing()

php - 如何在没有 artisan 的情况下运行 laravel 迁移(使用代码)

php - laravel 5.4 二进制类型的数据库字符集和排序规则

php - 如何通过cakephp记录mysql错误?

PHP explode() - 如何避免空行?

php - 修改 PHP/Mysql 时间表

laravel - 对非对象调用成员函数 addEagerConstraints()

javascript - 从 JavaScript cookie 读取 PHP cookie