2010-07-15 171 views
2

重用視圖標題信息在Zend框架,我有,我需要在傳播跨特定控制器的視圖的頂部部分中的相同的信息的公共使用的情況。例如,如果我有一個「書籍」控制器,我想在頁面頂部顯示摘要書籍信息,並在書籍下方有一個標籤界面以顯示評論,詳細信息等。每個標籤頁是書籍控制器中的一項操作。建議如何在控制器中的視圖之間傳播摘要信息的方式如下:Zend框架 - 跨控制器

  1. 我不會不斷地在每個操作中獲取摘要書籍信息。
  2. 我不是在我的觀點重複信息。

我雖然在視圖中使用了Zend View Helper,佔位符或動作助手($ this-> action ...)。

有什麼建議嗎?

回答

0

聽起來像是你想在init()方法來獲取控制器上的圖書信息:

class MyController extends Zend_Controller_Action 
{ 
    protected $_book; 

    public function init() 
    { 
     // get the book data/model, etc 
     $book = $this->_getBook(); 

     // if necessary, store the book for use in the actions 
     $this->_book = $book; 

     // store the book in the view 
     $this->view->book = $book; 
    } 
} 

如果動作只呈現圖書的信息,那麼你也許可以逃脫空操作方法,讓視圖腳本做他們的事情。

唯一的缺點是它可以通過動作獲取的書本數據。因此,如果有不需要的書數據的一些動作,那麼你最好是吃取它的開銷。

0

如果您決定堅持使用非我會加載標籤內容動態(應該很容易通過動作助手AjaxContent當前解決方案集成。只需加載動作的響應到你的標籤的容器中。

-ajax解決方案,該代碼被強制重複,因爲你需要不止一個頁面上的相同資料片。因爲視圖助手進行某種邏輯(或邏輯代理),而你partial應該是更適合您的需求只需要用於呈現&標記。

獲取不應該是硬的信息你的系統,假設你正在使用一些智能緩存方法(可能每個部分/選項卡都有一個緩存項)。