不,没有。只要您遵守 Cake 的命名约定,Cake 并不关心您如何命名您的表。它会在控制器第一次加载模型时生成用于魔术模型方法的模式;你不必抬起一根手指。见http://book.cakephp.org/view/903/Model-and-Database-Conventions
最好的建议:不要在这件事上与蛋糕争吵。如果你真的不能遵守 Cake 的约定,你还不如不使用 Cake;这非常困难,令人困惑和成功只是意味着你已经失去了 Cake 的大部分举重能力。将您的表名复数并没有那么糟糕,Cake 会很高兴。
此功能在 1.3 中已经可用 - 为您的表格命名任何您喜欢的名称(只要它们是复数词。)
-- 你可能会很好地在控制台中查看烘焙应用程序,这样你就可以熟悉 Cake 想要看到的内容以及它如何在不同的桌子布局上工作。
澄清后编辑:
您的模型、控制器和视图目录都共享一个通用名称,如下所示:
// in /app/models/rate.php
class Rate extends AppModel {
var $name = 'Rate';
// in /app/controllers/rates_controller.php -- note the underscore
class RatesController extends AppController {
// controllers are capitalized + plural
var $name = 'Rates';
// 在 /app/views/rates/*.ctp - Cake 的神奇 autoRender 期望找到一个视图文件, // 与渲染它的动作同名 - Rates::index() 的视图是 index.ctp
您所有的模型都扩展了 cake 的 AppModel 类(扩展了 cake 的 Model 类),不需要前缀。所有的控制器都会继承 Cake 的 AppController 类——类名以 Controller 为后缀,文件名以 _Controller 为后缀。
您可以在 /app 中使用 AppModel 和 AppController,它们明确地存在于您可能拥有的任何应用程序范围的自定义方法/属性中。由于您的所有模型/控制器都扩展了它们,因此继承会自动分散您放置在其中的任何属性/方法 - 例如,Auth。^_^
但是你仍然可以命名一个表模型、控制器、视图或其他任何东西,我猜。$name 属性是别名;您可以在同一模型中创建同一个表的多个实例,方法是使用不同的名称为其命名。您可以创建没有表的模型,并且可以在单个模型中在多个表(或数据库或服务器)之间切换。您还可以为模型创建非数据库类型的数据对象(例如平面 xml 文件)。无论如何,动态命名的类/方法($$Model::save() 等)都是在后台运行的。为了干燥我的应用程序,我在迭代中做了类似的事情,我没有遇到问题。(虽然我个人怀疑实际上推出一个名为 Model 的本地模型是否值得你在实验中投入的努力......)
在那一点上,Cake 的 API 说明了它的所有类、它们的方法等(生成代码库中的注释):
http://api13.cakephp.org/classes
HTH。:D