2011-12-29 66 views
0

我剛剛發現了CodeIgniter的HMVC模塊化擴展https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home,它對我的​​需求來說似乎是完美的,但我有一些問題。CodeIgniter:對HMVC和視圖的一些懷疑

比方說,我有兩個控制器:

  • 網站這是主控制器和用於顯示的網頁,可以調用用戶控制的方法,例如,以顯示一種形式
  • 用戶控制器用於對用戶進行認證,以顯示登錄/註冊表格...

現在我有以下問題:

  1. 如果用戶訪問用戶控制器直接(mysite.com/user/method)我想顯示完整的頁面,而如果我從站點控制器我想內加載用戶的方法只顯示一個表單(例如),這可能嗎?
  2. 從另一個模塊加載的模塊的視圖會發生什麼變化:是自動顯示的視圖還是需要手動顯示,以及視圖的行爲如何?

回答

2

如果方法正在通過模塊:: run()的

還有第三個可選參數,可以讓你改變的 行爲的功能,使得它返回的數據作爲一個字符串,而不是所謂的發送 它到您的瀏覽器。

如:

//put underscore in front to prevent uri access to this method. 
public function _module1() 
{ 
    $this->load->view('partial_view', array('some data'=>'some data'), TRUE) 
} 

調用它的現場查看內輕鬆

Modules::run('User/_module1') 
// should show whatever is in partial_view ie: a form 

//an alternative is to pass in any params if the method requires them 
Modules::run('User/_module1', $param) 
+0

沒有模塊::運行在呼喚你的類/方法不是倒過來。通過將第三個參數添加到視圖加載器中,它將以字符串形式檢索視圖。所以沒有輸出呈現給瀏覽器,它現在可以像使用包含一樣使用 – Philip 2011-12-29 14:19:19