cronを介してプロセスのリストを実行するために使用するコントローラーがあり、別のコントローラーからメソッドを実行するために必要です。
そのメソッドが独自のコントローラーから呼び出されると、すべてが正常に機能しますが、cronコントローラーから実行すると(手動で呼び出された場合でも)、失敗します。
私のコードは現在次のようになっています。
class CronController extends AppController
{
var $uses = array(.., 'EmailTemplate', ..);
var $components = array('Email');
//Some stuff
function process_for_cron_to_run() {
//Some stuff
//Run method from imported controller
App::import('Controller', 'Imported');
$imported = new ImportedController;
$imported->constructClasses();
$imported->method_to_run(); //Dies when running this method
exit;
}
}
...
class ImportedController extends AppController {
var $uses = array(..);
var $components = array('Mailer', 'RequestHandler', 'FileHandler', 'Email');
//Some stuff
function method_to_run() {
//Some stuff
$this->_sendEmail(..);
}
}
...
class AppController extends Controller
{
var $components = array('Cookie', 'RequestHandler', 'Err', 'Email', 'Sms');
var $uses = array(.., 'EmailTemplate', ..);
function _sendEmail(..) {
//Some stuff
$this->EmailTemplate->find(..); //Dying here (Line 1756)
}
..
}
これは次のエラーで死にかけています:
Fatal error: Call to a member function find() on a non-object in /../app/app_controller.php on line 1756
1756行目は上記のAppControllerにあります。
ImportedControllerのに追加しようとしEmailTemplate
ました-これは機能しましたが、代わりに、 3つのコントローラーすべてに含まれている$uses
への呼び出しでAppControllerの数行後に停止しました。参考までに、のエラーメッセージ:$this->Email
$components
$this->email
Fatal error: Call to a member function reset() on a non-object in /../app/app_controller.php on line 1645
私が考えることができる他の唯一のことは、ImportedControllerから呼び出しているメソッドがadmin_Xであるということです。したがって、/ processes / process_for_cron_to_runから呼び出すと、認証の問題が原因でキックアウトされる可能性がありますか?