CakePHP错误:cake bake使用了错误的表名

时间:2014-12-17 07:11:37

标签: php mysql cakephp

使用CakePHP 2.x

我已成功生成了许多模型,控制器和视图,但其中一个不起作用。 数据库表是名称' server_cpu',该模型似乎生成正常,因为我已将其与可转换为控制器和视图的其他模型进行比较,并且它是相同的。它也有useTable =' server_cpu',但即使在我尝试生成Controller时它仍然告诉我模型必须有一个表。

仔细观察之后我相信它正在尝试使用表格&server;服务器'如何强制它使用' server_cpu'而不是' server_cpues',请注意我已经尝试清空/ tmp / cache /文件夹并且没有效果。

尝试为“ServerCpus”生成控制器时出错。使用蛋糕烘焙:'你必须有一个这个类的模型来构建基本方法。请再试一次。'

1 个答案:

答案 0 :(得分:1)

有两种可能的解决方案:

首先:简单地更改表的名称可以解决这个问题,但应该注意的是,对于许多人来说,这可能不是取决于开发阶段,例如,如果当前数据库已经很好地建立并被许多其他系统使用或者应用这可能是不可能的。如果您从头开始,这将是一个更容易的解决方案。

其次:稍微复杂的解决方案是与Inflectors合作改变CakePHP的行为。这可以通过修改文件'/app/Config/bootstrap.php'来添加自定义Inflector来完成,有关此文档,请参阅this以获取有关CakePHP 2.x的inflector的信息。对于这种特殊情况,您可以使用类似

的内容 Inflector :: rules('plural',array('rules'=> array('/(。*)cpu $ / i'=>'\ 1Cpu')));

注意使用正则表达式来识别包含cpu的所有字符串