名为“俱乐部”的Cakephp模型根本不起作用!保留关键字?

问题描述:

在Cakephp2.0中,我有一个名为“Club”的模型,我从“ClubsController”访问它。如果我尝试做了$这个 - >俱乐部 - >找到我的控制器内它说:“错误:模型俱乐部数据库表俱乐部没有被发现。”堆栈跟踪具有名为“俱乐部”的Cakephp模型根本不起作用!保留关键字?

.....ClubsController.php(7): Model->find('first', Array)

真正的数据库表所谓的“ClubTable”,我已经在课堂上指定了$useTable = 'ClubTable'。这让我相信它会自动制作一个名为“Club”的模型,这与我的模型不同。文件夹结构,这样的:

/app/Model/Club.php 
/app/Plugin/Admin/Controller/ClubsController.php 

现在,这里的踢球,如果我改变我的模型“Club123”的型号,以Club123.php。然后在控制器中,我只需要$this->loadModel('Club123');即可完美工作,并加载我的模型并连接到我的数据库和表格“ClubTable”。

“俱乐部”以某种方式保留的关键字?

为了进一步混淆问题,当我没有使用插件(在/ app/Controllers文件夹中创建ClubsController)时,它工作正常。总结一下问题:

模型从我的插件内调用时会不能被发现,但模型Club123即可。当不在插件内部时可以找到俱乐部

任何帮助将不胜感激,因为我拉我的头发。哦,我还删除了/ app/tmp/cache/models /文件夹中的所有文件。

+0

文件名应该是情人案件。为什么不使用Cake Bake功能? –

这个问题已经死了好几个月。 CakePHP使用“插件”处理各种环境的能力被证明太过于无用。 CodeIgniter允许我轻松创建嵌套目录并访问常见模型。所以我想我解决这个问题的方法是:切换到CodeIgniter!

请仔细检查您的命名约定。

在文件系统中,所有名称都应该是LOWERCASE,下划线用于分隔单词。

在PHP中,它们应该是CamelCase。

我建议重新阅读this part of the book以确保您知道一切正确。

我发现,安装和使用Cake's Bake console将清理这些各种各样的问题,因为一切都是自动生成的:)

+1

虽然你的回答对于CakePHP 1.3(及以下版本)是正确的,但CakePHP 2.0(MikeMurko使用它)是不正确的。在那里,文件系统中的名字是骆驼壳,请参阅https://github.com/cakephp/docs/blob/master/en/appendices/2-0-migration-guide.rst – dhofstet

+0

好的,谢谢。我想我不能帮得太多。 – Ivo