作为Web应用程序的一部分,用户可以上传数据文件,在专用的MySQL数据库中生成新表以存储数据。然后,他们可以通过各种方式处理这些数据。
这个应用程序的下一个版本是用CakePHP编写的,目前我无法弄清楚如何在运行时动态分配这些表。
我有不同的数据库配置设置,可以很好地创建数据上传表,但是一旦完成,我就无法从控制器访问新表作为数据操作的记录CRUD操作的一部分。
我希望它符合
的路线function controllerAction(){
$this->uses[] = 'newTable';
$data = $this->newTable->find('all');
//use data
}
但它返回错误
未定义的属性: ReportsController :: $ newtable的
致命错误:调用成员函数 find()在非对象中 /app/controllers/reports_controller.php 在第60行
任何人都可以提供帮助。
答案 0 :(得分:1)
您需要致电$this->loadModel('newTable')
以正确初始化它。 Cake需要正确初始化$ this-> newTable,并调用所有回调。
当然,你不需要$this->uses[] = 'newTable';
,除了为$ uses数组添加另一个值之外什么都不做。
答案 1 :(得分:0)
尝试:
function controllerAction() {
$data = ClassRegistry::init('ModelNameForNewTable')->find('all');
}
如果您的表名为'new_tables',则您的模型名称应为'NewTable'