0

CI_Modelと呼ばれるクラスを持つがありXrayます。Pagesアプリケーション内のすべてのページを処理するというコントローラークラスがあります。これらのページの1つはと呼ばれworker.phpます。CLIworker.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()uppを正しく起動するのに役立ちます。

今、あなた$thisはオブジェクトであり、あなたはすることができます

$this->config->load()また$this->load->library('Xray');

于 2018-04-27T10:38:29.257 に答える