在Cakephp2.0中我有一个名为“Club”的模型,我从“ClubsController”访问它。如果我尝试在我的控制器中执行$ this-> Club->查找,则会显示“错误:未找到模型俱乐部的数据库表俱乐部。”堆栈跟踪已
.....ClubsController.php(7): Model->find('first', Array)
真正的数据库表名为“ClubTable”,我在类$useTable = 'ClubTable'
中指定了该表。这让我相信它会自动制作一个名为“Club”的模型,这与我的模型不同。文件夹结构如下:
/app/Model/Club.php
/app/Plugin/Admin/Controller/ClubsController.php
现在这里是踢球者,如果我将我的模型更改为Club123.php,型号名称为“Club123”。然后在控制器中我只做$this->loadModel('Club123');
它完美地工作并加载我的模型并连接到我的数据库和表“ClubTable”。
“俱乐部”是某种保留关键字吗?
为了进一步混淆问题,当我不使用插件(在/ app / Controllers文件夹中创建一个ClubsController)时,它可以正常工作。总结一下这个问题:
从我的插件内部调用时找不到模型俱乐部,但模型 Club123 可以。不在插件内时可以找到 Club 模型。
任何帮助都会非常感激,因为我正在拔头发。哦,我还删除了/ app / tmp / cache / models /文件夹中的所有文件。
答案 0 :(得分:0)
仔细检查您的命名约定。
在文件系统中,所有名称都应该是LOWERCASE,下划线用于分隔单词。
在PHP中,它们应该是CamelCase。
我建议重新阅读this part of the book以确保您完全了解所有内容。
我发现设置和使用Cake's Bake console会清除这些问题,因为一切都是自动生成的:)
答案 1 :(得分:-1)
这个问题已经死了好几个月了。 CakePHP使用“插件”处理各种环境的能力证明太不合适了。 CodeIgniter允许我轻松创建嵌套目录并访问常用模型。所以我想我解决这个问题的方法是:切换到CodeIgniter!