2011-04-07 71 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