2013-02-07 46 views
8

我正在使用codeigniter 2.1.3库中的Codeigniter加载模型

我试图从库中加载模型。最初,我在图书馆构建代码看起来像这样

$this->CI=& get_instance(); $this->CI->load->database('default') 

然后在我的媒体库的方法之一

,当我试图在它下面的行不工作

$this->load->model('model_name') 

但是当我试图这

$this->CI->load->model('model_name','',TRUE) 

它的工作原理,任何人都可以解释CI的实例引用加载模型时需要添加2个额外的参数吗?提前致谢。

回答

2

你可以告诉模型加载功能将采用通过第三个参数传递TRUE(布尔)自动连接和连接设置,在你的数据库配置文件中定义将被使用:

$this->load->model('Model_name', '', TRUE); 

你可以更多关于这个在这个下面的链接页面的末尾。

http://ellislab.com/codeigniter/user-guide/general/models.html

22

库不一定是CodeIgniter的工作方式的一部分。

它可能是一个自制库,用于解决您希望在CI应用程序中完成的任务。

这意味着如果您想使用任何CI的助手,模型或其他库,则需要通过CI实例执行此操作。这是通过这样实现的:

public function __construct() 
{ 
    $this->CI =& get_instance(); 
} 

通过分配实例您名为CI图书馆的成员,所有的CI相关的帮手,模型和库可以通过$this->CI被加载。通过试图只与$this这样做,你只能引用当前库 - 而不是CI实例。

要正确加载模型,在您的库中,$this->CI->load->model('model_name');就足够了。第二个参数允许您通过不同的对象名称访问模型。第三个参数对于加载模型不是必需的,但允许您自动加载数据库驱动程序。

如果你想通过相同的成员来访问你的模型:

$respone = $this->CI->model_name->method();