通过CLI访问控制器时清空$ this对象

时间:2015-11-24 19:04:36

标签: php codeigniter cron command-line-interface php-5.6

我在CodeIgniter中做了一个Cron工作,我需要访问我的模型才能执行它的任务。这是我的控制器代码。

Quit

如果我使用此命令使用CLI调用send_mail函数:

<?php
/**
* 
*/
class Cron extends CI_Controller
{
    function __construct() {
        if ( PHP_SAPI !== 'cli' ) exit('No web access allowed');
    }

    public function send_mail() {
        $this->load->model("mail_model");
        foreach ($this->mail_model->cron_job() as $mail) {
            echo $mail->id;
        }
    }
}

它返回此错误:

php /home/path/to/project/index.php cron send_mail

如果我Message: Undefined property: Cron::$load PHP Fatal error: Call to a member function model() on null in /home/path/to/project/application/controllers/cron.php on line 12 它返回一个空对象,那么我感到困惑,因为它正在扩展var_dump($this)。 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

错误说,$this->load为空,而不是$this。 检查$this->load初始化的方式。

编辑构造函数:

function __construct() {
    if ( PHP_SAPI !== 'cli' ) exit('No web access allowed');
    parent::__construct();
}