我試圖通過AJAX請求從我的控制器執行一個Shell。CakePHP 2.1.1:從控制器執行一個shell
在我的控制器:
public function log_import() {
$this->autoRender = false;
App::import('Console/Command', 'AppShell');
App::import('Console/Command', 'IzigetlogShell');
$job = new IzigetlogShell();
$job->dispatchMethod('main');
echo "REPONSE";
}
而且我的外殼:
<?php
App::import('Core', 'Controller');
App::import('Controller', 'Suivis');
class IzilogShell extends AppShell {
public $uses = array('Suivi');
-- DU CODE --
$this->Suivi = new SuivisController();
$this->Suivi->constructClasses();
$exist_date = $this->Suivi->find('first',
array(
'conditions' => array('Suivi.date' => $date_calcul)
));
}
但我總是得到同樣的錯誤消息: PHP致命錯誤:調用未定義的方法SuivisController ::發現( )在C:\ wamp \ www \ iziboxLogs \ app \ Console \ Command \ IzigetlogShell.php上XX行
我試過ex從控制檯執行shell,我得到了同樣的錯誤。
任何想法?謝謝,馬丁
您的標題部分錯誤 - 您也以其他方式得到它 - 從shell執行控制器。無論哪種方式,它濫用(蛋糕)PHP和MVC這樣做。你所得到的答案到目前爲止恐怕不會好過。 – mark
@Mark。你是對的,我專注於Shell代碼,並且錯過了從控制器調用Shell類的事實。 – nIcO