从模型内部访问控制器方法

时间:2012-03-05 05:54:02

标签: codeigniter methods

如何从模型内部访问控制器方法?

2 个答案:

答案 0 :(得分:19)

你没有。

虽然技术上可行,但如果您认为需要,则表明您的应用程序设计存在缺陷。

Controller层是您应用程序的主干,用于处理来自用户的请求,与Model层对话,并将视图中的输出拼接在一起。您的模型层应该对Controller和View视而不见,但仅处理数据操作。这是对MVC模式的过度简化的解释(您可以在其他地方找到资源)。

您的Codeigniter模型应该可以从任何控制器重复使用,而不依赖于它们。有许多解决方案可以解决您遇到的任何问题:您可以通过多种方式将数据传递到模型中,或者您可以使用调用模型方法的结果在Controller中执行操作。

答案 1 :(得分:5)

您可以这样使用:

class some_model extends Model
{
   function getController()
   {
   $controllerInstance = & get_instance();
   $controllerData = $controllerInstance->getData();
   }
}