我有这个功能,不断在我的控制器中重复使用。我已决定将其移动到可以一直引用的文件中。这是我的文件结构
controllers
|Generic
|Users
|get_all_languages.php
|Users
|Lang
|Lang.php
我想引用包含
的get_all_languages<?php
function get_all_languages(){
$this->curl->create(GetAllLanguages);
$this->curl->http_login(REST_KEY_ID,REST_KEY_PASSWORD);
return json_decode($this->curl->execute(),true);
}
到目前为止,我已尝试将其包含在我的文件顶部,如:
<?php
include __DIR__.'/../../Generic/Users/get_all_languages.php';
class Lang extends CI_Controller{
但是,当我尝试使用像$ this-&gt; get_all_languages();这样的函数时,会发生错误,说调用未定义的方法Lang :: get_all_languages()
我也尝试在__contruct之后包含它,但它不允许我编译。
我希望有人可以告诉我如何引用该功能。
谢谢。
答案 0 :(得分:1)
您可以使用library
或helper
codeigniter。
您可以在application/config/autoload.php
。(Reference it)
如果您需要特定控制器,可以使用$this->load->library()
或$this->load->helper()
在控制器构造中使用它。
例如:
class A extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->library('libraryname');
$this->load->helper('helpername');
}
public function index() {...}
...
}
...
<强>更新强>
application/helpers/global_lang_helper.php
<?php
function get_all_languages(){
$CI = &get_instance();
$CI->load->library('curl');
$CI->curl->create(GetAllLanguages);
$CI->curl->http_login(REST_KEY_ID,REST_KEY_PASSWORD);
return json_decode($CI->curl->execute(),true);
}
在你的控制器......
public function __construct()
{
parent::__construct();
$this->load->helper('global_lang');
}