将参数传递给zend partial和zend partialLoop

use*_*530 2 php zend-framework

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

在我的控制器中:我有:

public function indexAction() {
       $this->view->projects = $this->projects->getProjects();
    }
Run Code Online (Sandbox Code Playgroud)

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

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

我的_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>
Run Code Online (Sandbox Code Playgroud)

我的_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>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*cin 6

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

index.phtml中

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

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