Model view controller 模型内的codeigniter模型和控制器内的模型

Model view controller 模型内的codeigniter模型和控制器内的模型,model-view-controller,codeigniter,view,model,controller,Model View Controller,Codeigniter,View,Model,Controller,我实际上有3个问题,但彼此相似: 我有一个名为权限的模型。我需要另一个型号,即用户。在用户中使用权限的正确方法是什么 你明白我上面的意思了,是很奇怪还是有更好的方法 此权限模型将在我的整个应用程序中全局使用,在其他模型或控制器中如何使用它(与第一个问题类似) 一种方法是获取主CodeIgniter对象的全局变量,然后从该对象而不是$this加载模型: class Permissions extends Model { function MyPermissionsFunction()

我实际上有3个问题,但彼此相似:

  • 我有一个名为
    权限
    的模型。我需要另一个型号,即
    用户
    。在
    用户
    中使用
    权限
    的正确方法是什么
  • 你明白我上面的意思了,是很奇怪还是有更好的方法
  • 权限
    模型将在我的整个应用程序中全局使用,在其他模型或控制器中如何使用它(与第一个问题类似)

一种方法是获取主CodeIgniter对象的全局变量,然后从该对象而不是$this加载模型:

class Permissions extends Model
{
    function MyPermissionsFunction()
    {
        $ci =& get_instance();
        $ci->load->model('users');

        $ci->users->MyUserFunction();
    }
}

您还可以通过将模型组合成一个更大的模型来回避这个问题。将它们分开的主要原因是只加载您需要的模型;如果您几乎总是同时使用这两种方法(对于用户和权限来说,这是有意义的),那么最好采用这种方法。

一种方法是获取主CodeIgniter对象的全局变量,然后从该对象而不是$this加载模型:

class Permissions extends Model
{
    function MyPermissionsFunction()
    {
        $ci =& get_instance();
        $ci->load->model('users');

        $ci->users->MyUserFunction();
    }
}

您还可以通过将模型组合成一个更大的模型来回避这个问题。将它们分开的主要原因是只加载您需要的模型;如果您几乎总是同时使用这两种模型(这对于用户和权限来说是有意义的),那么您最好采用这种方法。

为什么不将这两种模型都包含在控制器中,然后在控制器中合并或调整结果,而不是分层模型呢,我应该检查控制器中的权限,并决定用户是否可以使用我的用户模型来做正确的事情?为什么不将两个模型都包含在控制器中,然后在控制器中合并或调整结果,而不是分层模型?所以你说,我应该检查控制器中的权限,并决定用户是否可以使用我的用户模型进行操作,对吗?