将数据传递给嵌套视图

时间:2017-06-13 09:35:02

标签: zend-view zend-framework3

我第一次尝试使用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循环的头部,对于另一个子视图,我得到相同的错误。因此将数据传递给视图可能是错误的。在我开始尝试嵌套视图之前,相同的视图正常工作。

那么将数据传递给子视图的正确方法是什么。在这种情况下如何在两个视图之间建立约束?

0 个答案:

没有答案