我在cakephp中创建一个shell来打印模型中的数据,遵循本教程关于Creating Shells & Tasks
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”,我确实得到了一个不同的错误信息,这表明我在模型上有一个未定义的函数,我甚至没有加载我的报告shell,这怎么可能?
感谢
注意:我已经建立了数据库以及表(报告),字段和条目,并且我设法使用浏览器查看表条目。
答案 0 :(得分:0)
我认为您正在尝试使用自定义mysql驱动程序(例如,用于调试查询)。您应该在/app/config/database.php中将驱动程序名称更改为“mysql”。或者,如果您仍想跟踪查询,则应创建/app/models/datasources/dbo/dbo_mysql_ex.php并将代码http://bin.cakephp.org/saved/32872放入其中。
答案 1 :(得分:0)
应该$ this->报告 - > findAll();不是$ this->报告 - > find('all');?
旁注:你为什么要在cron中运行它,echo不会做什么,因为没有人会看到它