我使用Codeigniter和MVC模式創建應用程序。 我現在想創建一個可重用的管理工具,用於不同的對象,如條目,用戶,類別。我需要跨越不同的控制器和視圖以及多個時間的特定工具集。MVC和在模型中查看
我希望能夠調用類似$this->load_admin_tools($name,$data)
其中$name
將成爲工具集的名稱(這將只是一個HTML表單)和$data
必要的變量來處理那些形式(最有可能$id
的對象)。
我想這樣做,這樣我就可以在一個地方添加或刪除一些工具。
我想創造一個model_admin_tools,我將檢查的權限是否應顯示工具,然後裝入適當的視圖(表格刪除/編輯/ etc)。我知道那些應該是一個控制器(爲了檢查權限,然後決定是否顯示某些東西),但是一遍又一遍地重複相同的代碼,這對我來說比將它們放在模型中是最糟糕的。我可以在控制器中創建私人功能,但是我不得不將這個功能放在我的所有控制器中。
有沒有更好的方法來實現這一目標?我在想助手,但同樣,助手不是爲了「觀看」。或者,我可能太委婉?
在此先感謝。
是的,我用的幫手所有的時間,但我不加載在其中的視圖。澄清。我想爲用戶操作加載5個不同的html表單(如編輯/刪除/禁止等)。所以我需要檢查它是否應該加載和什麼樣的形式。然後我需要加載適當的HTML表單(視圖)。所以最後,它將是模型中的$ this-> load-> view('user_delete_form')。而且我知道這應該在Controller中完成。這就是爲什麼我有點困惑,我不知道是否有更好的方式來做到這一點。 – user1245750 2012-03-02 19:04:29
看我編輯的答案,看看是否有助於回答你的問題。 – Catfish 2012-03-02 19:09:22
這不完全是我想要實現的,因爲這樣我就不得不調用模型,檢查結果,然後加載視圖。該代碼塊將在控制器上執行很多次);理想情況是將該代碼放到一個函數中(如模型中),然後調用它。但是這樣我就可以在模型中使用'load-> view()'。我不知道是否有可能需要檢查。我的意思是,我可以在視圖中創建切換,並基於第二個參數來加載顯示我需要的視圖。即使我不能用一行代碼來做(檢查,加載需要的視圖)3行比20好得多 – user1245750 2012-03-02 19:31:34