2012-12-25 309 views
-2

我知道如何從控制器調用模型中的方法,但我想知道如何從模型調用控制器中的方法。如何在控制器中調用模型中的方法

$this->load->model('dataOperateModel'); 
$this->dataOperateModel->saveData($formtype); 

這加載模型中的方法。但我還沒有看到有人向控制器做過模型。 有沒有簡單的方法來處理這個問題。

+0

如果你正在寫有模糊的,甚至MVC的設計靈感的圖案相似,從模型層的結構是完全不知道的表示層。你試圖做的事違反了MVC模式的核心[想法](http://en.wikipedia.org/wiki/Separation_of_concerns)。 –

回答

2

您不應該從模型中調用控制器操作。這破壞了數據分離的地步。我建議改變你的問題,更具體的問題,調用行動將解決。

回答這個問題。假設控制器被稱爲Posts。

//Import controller 
App::import('Controller', 'Posts'); 
//Instantiation 
$Posts = new PostsController; 
//Load model, components... 
$Posts->constructClasses(); 
//Call a method on the controller. 
$Posts->index(); 
+0

雖然上面的答案是肯定的,但你建議我不要那麼做。你呢? – kiriappa

+0

@kiriappa實際上,上面的代碼適用於CakePHP而不是Codeigniter。我會建議詢問一個更直接的問題,它涉及到你正在嘗試做什麼,而不是簡單地問如何在控制器上調用動作。這將允許人們在遵循MVC設計的解決方案上爲您提供建議。 – cgTag

+0

是的,我明白。謝謝先生。 – kiriappa

1

請昌這樣的:

$this->load->model('dataOperateModel','dataOperate'); 
$this->dataOperate->saveData($formtype); 
相關問題