2012-04-24 29 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

相關問題