无法在控制器内使用库函数

时间:2015-11-25 19:15:44

标签: php codeigniter

我正在尝试创建自己的库,以便我可以在我的应用程序中处理自定义区域。我有一个位于应用程序/库的小库,我称之为随机数发生器。它看起来像这样:

:target

在我的控制器中,我试图测试简单的test_function:

Class Randomizer { 
 public function __construct()
 {
   parent::_construct();
   $CI =& get_instance();
   $CI->load->library('session');
   $CI->load->database();
 }

 function test_function($name)
 {
    return 'Hi dear' . $name . 'welcome back!';
 }
}

我收到以下错误

public function index()
{
    echo($this->Randomizer->test_function('John'));
    exit;
}

2 个答案:

答案 0 :(得分:0)

请仔细查看documentation。有一些问题。

首先,您似乎没有加载库($this->load->library('randomizer')),否则您会收到语法错误,因为您正在调用parent::_construct(),而不是parent::__construct。而且你无论如何都不必调用那个函数,因为你的班级没有父母(它不会extend一个班级......)。

此外,虽然您使用大写声明了您的类,但该变量将为小写。所以你应该致电$this->randomizer->test_function()

答案 1 :(得分:0)

我可以看到几个可能的错误。首先,您没有加载在控制器中创建的库。如果你在调用库函数之前没有使用$this->load->library('randomizer');。如果要在整个控制器上使用库,则通过控制器__consturct加载它。此外,我猜你没有扩展现有的类,因此不需要parent::_construct()。确保您了解使用库的原因以及何时应该使用帮助程序。详细了解Codeigniter Libraries