2012-12-25 181 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); 
相关问题