2014-09-03 66 views
0

layout.phtml代碼:在zendframework從數據庫下拉菜單2佈局

<ul class="dropdown-menu"> 
       <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Java</a></li> 
       <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">android</a></li> 
       <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Dot Net</a></li> 
       <li><a tabindex="-1" href="<?php echo $this->url('project') ?>">Zend Framework</a></li> 
      </ul> 

,但我想轉換成循環這裏。

Module.php代碼:

class Module 
     { 
       public function onBootstrap(MvcEvent $e) { 
       $eventManager = $e->getApplication()->getEventManager(); 
       $moduleRouteListener = new ModuleRouteListener(); 
       $moduleRouteListener->attach($eventManager); 

// this is for session 


    $this->initSession(array(
          'remember_me_seconds' => 180, 
          'use_cookies' => true, 
          'cookie_httponly' => true, 
             )); 
     // this code is not working(to get the values from db for menu list) 
       $service = $this->getServiceLocator()->get('UserService'); 
      $result = $service->getmenulist(); 
       $this->layout()->myVariable = $result; 
      } 

    //other code 
     } 

這是我的佈局當前菜單,但我想使下拉從數據庫列表。我不知道如何將值從module.php傳遞給佈局。任何人都可以幫助我解決這個問題。有沒有其他的方式來執行它。在module.php中,我試圖獲取菜單名稱列表並將其傳遞給佈局。

+0

瞭解視圖助手和依賴注入) – Sam 2014-09-03 21:26:22

回答

0

您的用於檢索UserService的代碼不屬於onBootstrap方法,因爲它將在您每次運行應用程序時執行,無論您是否實際訪問該模塊。此代碼可能屬於自定義視圖幫助器,正如@Sam所建議的,可用於將菜單注入到佈局中。

如果您正在計劃菜單的其他功能,例如基於ACL切換項目,那麼您的方法可能涉及自定義導航容器和/或聽衆來獲取並填充菜單。

不幸的是,你的問題更多的是設計問題,可能只是缺乏對某些基本ZF2概念的完全理解,而不是某個特定代碼的實際問題。因此,您不會從社區獲得太多回復。您可能只需要查看ZF2文檔和教程,並在實施這些概念時遇到特定問題時再回來。