我正在CodeIgniter中进行Cron作业,我需要访问我的模型才能执行它的任务。这是我的控制器代码。
<?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;
}
}
}
如果我使用以下命令使用CLI调用send_mail函数:
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)
,它会返回一个空对象,所以我很困惑,因为它正在扩展CI_Controller
。有什么想法吗?
错误说,空的是$this->load
,而不是$this
。检查$this->load
是如何初始化的。
编辑您的构造函数:
function __construct() {
if ( PHP_SAPI !== 'cli' ) exit('No web access allowed');
parent::__construct();
}