Php Codeigniter-使用别名自动加载模型

Php Codeigniter-使用别名自动加载模型,php,codeigniter,model,alias,autoload,Php,Codeigniter,Model,Alias,Autoload,当我在codeigniter中手动加载模型时,我可以指定如下别名: $this->load->model("user_model","user"); //user is an alias to user_model $this->user->getProfile(); //use the alias to refer to the actual model 其中一些模型在我的应用程序中被广泛使用,因此我决定使用autoload.php自动加载它们。我知道我可以加载它们,

当我在codeigniter中手动加载模型时,我可以指定如下别名:

$this->load->model("user_model","user"); //user is an alias to user_model
$this->user->getProfile(); //use the alias to refer to the actual model
其中一些模型在我的应用程序中被广泛使用,因此我决定使用autoload.php自动加载它们。我知道我可以加载它们,以便:

$autoload['model'] = array("user_model","another_model");
但是,它们都使用别名引用。我想用现有的别名加载它们,这样就不会干扰当前代码

我想我可以在一个自动加载的助手中有一些这样的代码:

$ci= &get_instance();
$ci->user = $ci->user_model;

但我想检查的是,我可以在自动加载时加载别名为的模型吗?

是的,您可以在自动加载过程中创建与数组相同的别名。尝试但不可能仅使用别名。您可以创建与自动加载时间相同的别名

$autoload['model'] = array(array('users_model', 'users'), array('an_model', 'an'), 'other_model');
或尝试

$autoload['model'] = array(array('users_model', 'users', FALSE));  
更多详情:


是的,您可以在自动加载过程中创建与数组尝试相同的别名,但不可能仅使用别名创建与自动加载时间相同的别名

$autoload['model'] = array(array('users_model', 'users'), array('an_model', 'an'), 'other_model');
或尝试

$autoload['model'] = array(array('users_model', 'users', FALSE));  
更多详情:


对于CodeIgniter 2.x,这在自动加载中是不可能的,但可以通过扩展默认控制器来实现。在application/core目录中创建一个文件MY_Controller.php,代码如下:

<?php
class MY_Controller extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('Example_model', 'alias');
    }
}
当然,将示例_模型和别名替换为适当的模型和所需的别名


然后更改控制器以扩展MY_控制器而不是CI_控制器。现在,您可以在任何控制器中使用$this->alias->任何东西。

对于CodeIgniter 2.x,这在自动加载中是不可能的,但您可以通过扩展默认控制器来实现。在application/core目录中创建一个文件MY_Controller.php,代码如下:

<?php
class MY_Controller extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
        $this->load->model('Example_model', 'alias');
    }
}
当然,将示例_模型和别名替换为适当的模型和所需的别名


然后更改控制器以扩展MY_控制器而不是CI_控制器。现在你可以在任何控制器中使用$this->alias->任何东西。

我不确定它是否已经实现。我尝试了两种方法$autoload['model']=arrayarray'users\u model'、'users';$autoload['model']=arrayarrayuser_model=>users@Rakeshharma它在3.0-dev版本中可用,我还没有测试过,但它不在2.2.0中,我已经在2.x上测试过,它不工作。但是你可以实现你的ci,我不确定它是否已经实现。我尝试了两种方法$autoload['model']=arrayarray'users\u model'、'users';$autoload['model']=arrayarrayuser_model=>users@Rakeshharma它在3.0-dev版本中可用,我还没有测试过,但它不在2.2.0中,我已经在2.x上测试过,它不工作。但是你可以实现你的ci,签出