将参数传递给zend partial和zend partialLoop

时间:2011-01-30 00:39:03

标签: php zend-framework

我会尝试尽可能最好地描述这个,我之前没有遇到过这个问题,但也许我做错了。

在我的控制器中:我有:

public function indexAction() {
       $this->view->projects = $this->projects->getProjects();
    }

在与此控制器对应的视图文件中,我有:

<?php echo $this->partial('partials/sidebar/_home.phtml', array($this->projects)); ?>

我的_home.phtml包含当前代码:

<div class="sidebar-content">
    <p class="sidebar-title">Projects Portfolio</p>
    <div id='coin-slider' style="margin:0 auto;">
        <?php echo $this->partialLoop('partials/sidebar/_projects-slideshow.phtml', $this->projects);?>
    </div>
</div>

我的_projects-slideshow.phtml有这段代码:

<a href="<?php echo $this->baseUrl($this->pimage); ?>">
    <img src="<?php echo $this->baseUrl($this->pimage); ?>" alt="1" />
    <span>
        <?php echo $this->pname . ' by ' . $this->group . '. Client: ' . $this->client; ?>
    </span>
</a>

问题是该变量未传递给_home.phtml。我尝试了Zend_Debug::dump($this->projects),结果为NULL。我尝试了Zend_Debug::dump($this),然后找到了项目数组。我究竟做错了什么?该变量未被传递,或者可能是_home.phtml,更不用说_projects-slideshow.phtml不知道$this->projects是什么。

2 个答案:

答案 0 :(得分:6)

如果您的_home.phtml中的$ this-&gt;项目为空,我认为您应该更改

index.phtml

中的

<?php echo $this->partial('partials/sidebar/_home.phtml', array($this->projects)); ?>

进入

<?php echo $this->partial('partials/sidebar/_home.phtml', array('projects' => $this->projects)); ?>

答案 1 :(得分:0)

这应该如何:

  $variables = array (
  'records' => $result
  );

  $this->view->partial ("nodes/relations.php", $variables);

数组中的变量已命名。您的$this->projects->getProjects()究竟是什么?