微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CakePHP中保留的数据库表名称是什么?

如何解决CakePHP中保留的数据库表名称是什么?

| 我正在计划数据库,由于CakePHP尚未使用自己的前缀来命名其类,因此有许多类可能与根据命名约定创建的模型类冲突。 所以我的问题分为三个部分: 是否有数据库列表 保留的表名或 检查它是否简单的方法?它 如果我计划数据库会很痛苦 有100张桌子,并注意到一些 桌子及其连接 必须重命名... 有没有解决它的简单方法,而不破坏任何CakePHP的魔力?有建议吗?最好通过在表名开头添加自己的前缀\'my_ \'或类似名称来以其他方式命名表吗? 是名称空间或类似的东西 CakePHP版本2将允许 使用各种表名?     

解决方法

         不,没有。只要您遵守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。 ^ _ ^ 但是您仍然可以为表命名为Models,Controllers,Views或其他名称。 $ name属性是一个别名;您可以使用不同的名称为同一个表在同一模型中创建多个实例。您可以创建不带表的模型,并且可以在单个模型中的多个表(或数据库或服务器)之间切换。您也可以为模型创建非数据库类型的数据对象(例如平面xml文件)。动态命名的类/方法($$ Model :: save()等)无论如何都是在幕后运行。为了使我的应用程序干燥,我在迭代中做了类似的操作,但我没有遇到任何问题。 (尽管我个人怀疑实际上推出一个名为Model的本地模型是否值得您投入实验的努力……) 并请注意,Cake \'s API会说明其方法等所有类(从代码库中的注释中生成): http://api13.cakephp.org/classes HTH。 :D     ,        从经验中我知道您不能使用\'files \'和\'models \'之类的表名,因为它们创建了Cake已经用于其他用途的类,例如File和Model。 我还没有遇到过这样的其他问题,但是我敢肯定会找到它们。 我建议避免使用蛋糕核心类使用的任何名称。     ,        我知道这是一个旧线程,但是只是偶然发现它正在寻找其他东西。我认为这应该有助于回答问题2。在database.php中,您可以在
DATABASE_CONFIG
类/app/config/database.php中添加数据库表前缀。请参阅下面的配置数组中的最后一个键:
var $default = array(
    \'driver\' => \'mysql\',\'persistent\' => false,\'host\' => \'localhost\',\'login\' => \'user\',\'password\' => \'password\',\'database\' => \'database_name\',\'prefix\' => \'\',);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。