Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter:每个库中的加载模型或';通过';将模型从控制器内复制到库中_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter:每个库中的加载模型或';通过';将模型从控制器内复制到库中

Php CodeIgniter:每个库中的加载模型或';通过';将模型从控制器内复制到库中,php,codeigniter,Php,Codeigniter,我目前正在与CodeIgniter合作。 我的前端控制器根据他获得的输入加载2个库中的1个。 两个图书馆都需要访问模型。 我的问题: 我应该在每个库中加载模型(加上每个库中CI的get_instance(),甚至可以访问CI加载函数),还是有“更好”的解决方案在Frontcontroller中加载模型并将模型“传递”到一个或另一个库中。我甚至检查了自动加载的可能性,但即使这样,我也无法从图书馆内直接访问。 我想在每个库中加载模型并不是最好的解决方案(比如,如果我需要更多库怎么办等等),但我现在有

我目前正在与CodeIgniter合作。 我的前端控制器根据他获得的输入加载2个库中的1个。 两个图书馆都需要访问模型。 我的问题: 我应该在每个库中加载模型(加上每个库中CI的get_instance(),甚至可以访问CI加载函数),还是有“更好”的解决方案在Frontcontroller中加载模型并将模型“传递”到一个或另一个库中。我甚至检查了自动加载的可能性,但即使这样,我也无法从图书馆内直接访问。 我想在每个库中加载模型并不是最好的解决方案(比如,如果我需要更多库怎么办等等),但我现在有点困了-(
简言之:
-在FrontController中加载模型,并可能将模型作为参数“传递”给我需要的任何库?
-或者在任何库中获取CI实例,然后加载模型(并编写冗余代码)
-还是有更好的解决办法

thx预付款:-)

编辑:
我赞成:
公共函数构造()
{
$this->ci_instance=&get_instance();
$this->ci_instance->load->model('my_model');
$this->\u model=$this->ci\u instance->my\u model;
}

然后使用如下函数:
$mysql_result=$this->_model->get_testdata();

它比tank auth lib中的解决方案略短(但几乎相同)。:-) 但是坦克认证库也帮了我(看看职业选手是怎么做到的)。
谢谢你,dm03514

get_实例是官方文档建议的本地方式:

为了更方便地访问模型对象,我将在库中定义一个属性:

public $_model = FALSE;
在你的图书馆的某个地方,建设者:

$CI =& get_instance();
$CI->load->model('model_name');
$this->_model = $CI->model_name;

然后,您可以通过调用
$this->\u model->method()在任何库方法中访问该模型

每当我遇到这样的大问题时,我通常会查看一些流行的库,例如
Tank Auth
。库/模型在类中加载。这使您的库能够自给自足并进行加密,这不依赖于您的初始化参数

在库已经加载后重新加载它只是
Loader.php中的一个条件,性能并不是很高。

Thx获取附加信息(Tank Auth Lib/Loader.php)!:-)