2011-06-07 103 views
2

我使用HMVC的Codeigniter中的Tank Auth庫和整個坦克auth mvc文件都在它自己的模塊中,名爲'auth'。罐AUTH加載使用一個文件夾(AUTH)內發現的圖(domain.com/application/modules/auth/views/auth/login_form.php):HMVC和文件夾中的視圖(Codeigniter)

$this->load->view('auth/login_form', $data); 

據我知道上面的代碼將加載在沒有HMVC的情況下,auth文件夾內的login_form.php正確。然而,隨着HMVC,我需要將下面的代碼來獲取視圖加載:

$this->load->view('auth/auth/login_form', $data); 

是否存在,我們應該改變,因此我們沒有提及由(模塊名稱)的視圖文件中的設置/(views文件夾名稱)/(視圖文件名)?或者這是完全正常的,大多數人這樣做?

看起來很麻煩,我必須將模塊文件夾名稱'auth'添加到每個view()函數調用中,並且如果更改模塊文件夾的名稱,則更改所有這些文件夾。

回答

3

假設你正在使用Modular Extensions - HMVC

如果你有auth設置爲一個模塊已經,你可以叫:

$this->load->view('login_form', $data); 

文件/views/login_form.php將從目前的模塊中進行加載。這適用於模型,語言文件,庫等。將模塊視爲自己的應用程序,這是您通常會執行的操作。

此外,加載其他模塊或模塊的目錄外的控制器的文件,你可以使用$this->load->view('auth/login_form');

如果沒有找到該文件,它會檢查其他模塊路徑包括默認目錄。這可能是也可能不是其他HMVC包的工作方式,我不確定 - 但這是MX工作的方式。

+0

我按照https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home上的步驟安裝了HMVC。我是否需要做其他事情來將auth設置爲模塊? auth已經在模塊文件夾中,以及它的視圖和控制器等。我讀過關於擴展MY_controller的信息,請問我目前正在擴展CI_controller嗎? – Nyxynyx 2011-06-07 17:56:57

+0

順便說一句,我想在auth模塊中加載/views/auth/login_form.php。現在看來我只能用$ this-> load-> view('auth/auth/login_form',$ data)調用它。 – Nyxynyx 2011-06-07 17:58:09

+0

你是否擁有一個模塊中的* auth文件,或者它們中的一些還在默認目錄中?並確保:您是否從auth模塊內的控制器調用此項?爲什麼你在'auth/views /'中有一個名爲'auth'的子目錄?你不需要它,將視圖文件移動到模塊中的'/ views'中。 – 2011-06-07 17:59:25