0

我有一个CI_Model名为Xray. 我有一个控制器类Pages,它处理我在应用程序中的所有页面。这些页面之一称为worker.php. 我通过 CLI执行worker.php使用。Supervisord

我希望能够从 访问Xray的函数worker.php,但不能通过命令行(执行后我不会使用命令行worker.php)。

4

3 回答 3

1

将 Xray 作为模型或库加载,以更合适的方式加载,并正常访问

class Pages extends CI_Controller {

    function worker()
    {
        $this->load->library('Xray');
        echo $this->xray->my_func();
    }

}
于 2013-02-07T21:39:59.197 回答
0

以下是在外部加载的脚本中包含 CodeIgniter 功能所需的代码:

ob_start();
include('/path/to/your/index.php');
ob_end_clean();

$ci =& get_instance();
$ci->load->model('xray');

所以问题是没有CI实例,因此什么都不会加载。

取自Ellislabs 论坛

于 2013-02-07T23:36:56.897 回答
0

问题$this是当前的null

我只是先调用父母的构造函数:

function __construct()
{
   parent::__construct();
}

如果您检查parent,您将看到class CI_Controller并从那里function __contruct()帮助您正确启动。

现在你$this是一个对象,你可以做

$this->config->load()或者$this->load->library('Xray');

于 2018-04-27T10:38:29.257 回答