2012-04-24 20 views
0

我有一个Zend Framework的问题。我创建了一个从数据库请求一些数据的插件。如何将数据从一个插件传递给Zend Framework中的部分?

<?php 
class Blog_Plugin_Navigation extends Zend_Controller_Plugin_Abstract { 
    public function routeShutdown(Zend_Controller_Request_Abstract $request) { 
     $navigation = new Application_Model_NavigationMapper(); 

     $view = Zend_Layout::getMvcInstance()->getView(); 
     $view->navigation = $navigation->fetchAll(); 
    } 
} 

在我layout.phtml我用这个:

<ul> 
    <?=$this->partialLoop('navigation-item.phtml', $this->navigation)?> 
</ul> 

当我使用的print_r打印出来的阵列我从数据库中获取的值,但如果我访问我的网站,我只是没有得到值。导航item.phtml看起来是这样的:

<li><a href="<?=$this->url?>"><?=$this->text?></a></li> 

我刚刚得到这个:

<li><a href=""></a></li> 

哪里是我的错?如果有人能帮助我,那会非常好。 :) 提前致谢。

+0

更换

<li><a href="<?=$this->url?>"><?=$this->text?></a></li> 

您能得到什么对于'var_dump($ navigation-> fetchAll())',那么你在部分模板中为var_dump($ this-> url,$ this-> text)得到了什么? – drew010 2012-04-24 20:46:18

+0

对于'var_dump($ navigation-> fetchAll())'我得到一个数组,其中包含我想要显示的值以及'var_dump($ this-> url,$ this-> text)'我得到NULL值。 :/ – anisie 2012-04-24 21:01:40

+0

好吧,我想知道你是否也在'layout.phtml'脚本中为'$ this-> navigation'获取了'NULL'?我会认为这个变量是在那里分配的,所以也许它会以partialLoop的方式丢失。你的值是在'$ navigation'数组对象还是数组中?如果您尝试使用<?= $ this ['url']?>'和'<?= = this this ['text']?>'? – drew010 2012-04-24 21:18:34

回答

2

Repalce

<?=$this->partialLoop('navigation-item.phtml', $this->navigation)?> 

<?=$this->partialLoop('navigation-item.phtml', $this->navigation)->setObjectKey('model')?> 

然后用

<li><a href="<?=$this->model->url?>"><?=$this->model->text?></a></li> 
+1

+1。我总是最终传递一个数组:'$ this-> partial('my_partial.phtml,array('model'=> $ mydata));''使用'setObjectKey()'感觉对我更好。谢谢! – 2012-04-25 05:26:10

相关问题