2011-04-07 70 views
0

我創造CakePHP中的一個殼,從模型打印數據,下面這個教程的Creating Shells & Taskscronjobs CakePHP的,需要幫助

class ReportShell extends Shell { 
    var $uses = array('Report'); 
    function main() { 
     $reports = $this->Report->findAll(); 
     foreach($reports as $report) { 
      $this->out('Report Name: ' . $report['Report']['name'] . "\n"); 
     } 

     $this->out("Total Reports: " . count($reports) . "\n"); 
    } 
} 

但後來當我在控制檯上輸入$cake report,我得到這個錯誤消息:

Fatal error: Unable to load DataSource file dbo\dbo_mysql_ex.php in 
C:\xampp\htdocs\cake_test\core\cake\libs\model\connection_manager.php on line 178 

任何想法我應該如何解決這個問題?

更新: 以下@olezhek建議,我已編輯我的database.php文件,並使用「mysql」,而不是「mysql_ex」,我確實得到了一個不同的錯誤消息,其中指出,我有一個未定義的函數模型,我甚至沒有加載我的報告外殼,這怎麼可能?

感謝

注:我有表(報告),字段和條目一起建立數據庫,我管理,查看使用瀏覽器的表項。

+0

要粘貼新的錯誤? – dogmatic69 2011-04-07 14:54:35

回答

0

我認爲你正在嘗試使用自定義mysql驅動程序(例如,用於調試查詢)。您應該將驅動程序名稱更改爲/app/config/database.php中的'mysql'。或者,如果您仍然想要跟蹤查詢,則應該創建/app/models/datasources/dbo/dbo_mysql_ex.php,並將其中的代碼放入其中http://bin.cakephp.org/saved/32872

0

應該$ this-> Report-> findAll();不是$ this-> Report-> find('all');?

側面說明:你爲什麼要運行在cron,回聲什麼都不會做的人會看到它

+0

findAll()與find(「all」)大致相同,我想在我放置真正的cron事物之前嘗試做這個工作,因爲我將在真正的cron作業中使用很多模型,所以我想這足以代表 – littlechad 2011-04-07 13:45:22