如何从模型内部访问控制器方法?
答案 0 :(得分:19)
虽然技术上可行,但如果您认为需要,则表明您的应用程序设计存在缺陷。
Controller层是您应用程序的主干,用于处理来自用户的请求,与Model层对话,并将视图中的输出拼接在一起。您的模型层应该对Controller和View视而不见,但仅处理数据操作。这是对MVC模式的过度简化的解释(您可以在其他地方找到资源)。
您的Codeigniter模型应该可以从任何控制器重复使用,而不依赖于它们。有许多解决方案可以解决您遇到的任何问题:您可以通过多种方式将数据传递到模型中,或者您可以使用调用模型方法的结果在Controller中执行操作。
答案 1 :(得分:5)
您可以这样使用:
class some_model extends Model
{
function getController()
{
$controllerInstance = & get_instance();
$controllerData = $controllerInstance->getData();
}
}