我第一次尝试使用zend3中的嵌套视图。我的模板将被加载但没有数据出现,而不是我收到错误。
这是我试过的:
控制器/索引
$view = new ViewModel();
$projectView = new ViewModel(['project' => $this->projectTable->fetchAll()]);
$projectView->setTemplate('import/project/index');
$primaryUnitView = new ViewModel(['unit' => $this->unitTable->fetchAll()]);
$primaryUnitView->setTemplate('import/unit/index');
$view->addChild($projectView, 'projectview')
->addChild($primaryUnitView, 'unitview');
return $view;
我的观点index.phtml
<div class="row content">
<?= $this->projectview ?>
<?= $this->unitview ?>
其中一个子视图:
<?php
foreach ($projects as $project) : ?>
<tr>
<td><?= $this->escapeHtml($project->projectname) ?></td>
<td><?= $this->escapeHtml($project->shortcut) ?></td>
<td><?= $this->escapeHtml($project->Number) ?></td>
<td><?= $this->escapeHtml($project->description) ?></td>
<?php endforeach; ?>
另一个基于另一个表是相同的。
每个子视图都带有相同的错误,这里的第一个错误是
注意:未定义的变量:项目在 C:\ xampp \ htdocs ... \ module \ Import \ view \ import \ project \ index.phtml on 第28行
警告:为foreach()提供的参数无效 C:\ xampp \ htdocs ... \ module \ Import \ view \ import \ project \ index.phtml on 第28行
第28行是foreach循环的头部,对于另一个子视图,我得到相同的错误。因此将数据传递给视图可能是错误的。在我开始尝试嵌套视图之前,相同的视图正常工作。
那么将数据传递给子视图的正确方法是什么。在这种情况下如何在两个视图之间建立约束?