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

Database CakePHP中保留的数据库表名是什么?,database,cakephp,naming-conventions,reserved-words,Database,Cakephp,Naming Conventions,Reserved Words,我在计划我的数据库,因为CakePHP没有用自己的前缀命名它的类,所以有许多类可能与根据命名约定创建的模型类相冲突 因此,我的问题分为三个部分: 有数据库列表吗 保留或保留的表名 检查它是否正确的简单方法?信息技术 如果我计划建立数据库会很痛苦 有100张桌子,请注意 这些表及其连接将 必须重新命名 有没有一种不破坏任何CakePHP魔法的简单方法?有广告吗?通过在表名的开头添加自己的前缀“my_”或类似名称,以其他方式命名表是最好的方式吗 名称空间或类似的东西即将出现吗 CakePHP版本2允

我在计划我的数据库,因为CakePHP没有用自己的前缀命名它的类,所以有许多类可能与根据命名约定创建的模型类相冲突

因此,我的问题分为三个部分:

  • 有数据库列表吗 保留或保留的表名 检查它是否正确的简单方法?信息技术 如果我计划建立数据库会很痛苦 有100张桌子,请注意 这些表及其连接将 必须重新命名

  • 有没有一种不破坏任何CakePHP魔法的简单方法?有广告吗?通过在表名的开头添加自己的前缀“my_”或类似名称,以其他方式命名表是最好的方式吗

  • 名称空间或类似的东西即将出现吗 CakePHP版本2允许 使用各种表名

  • 不,没有。只要您遵守Cake的命名约定,Cake就不在乎您的表名。当控制器第一次加载模型时,它会生成用于魔术模型方法的模式;你不用动一根手指。看

  • 最好的建议是:不要在这个问题上争吵。如果你真的不能遵守蛋糕的惯例,你最好不要使用蛋糕;这是愚蠢的困难,混乱和成功只是意味着你已经失去了蛋糕的大部分举重能力。将你的餐桌名称多元化并没有那么糟糕,蛋糕会很开心的

  • 此功能已在1.3中提供-请随意命名表格(只要它们是复数)

  • --如果你能在控制台中查看烘焙应用程序,你可能会得到很好的服务,这样你就可以熟悉蛋糕想要看什么,以及它如何在不同的桌子布局上工作


    澄清后编辑:

    您的模型、控制器和视图目录都共享一个通用名称,如下所示:

     // 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的magic autoRender希望找到一个具有 //与呈现它的操作同名-Rates::index()的视图为index.ctp

    您的所有模型都扩展了cake的AppModel类(它扩展了cake的Model类),不需要前缀。所有控制器都将扩展Cake的AppController类-类名后缀为Controller,文件名后缀为_Controller

    您将在/app中定义AppModel和AppController,它们明确地存在于您可能拥有的任何应用程序范围的自定义方法/属性中。由于您的所有模型/控制器都对它们进行了扩展,因此继承会自动分散您在其中放置的任何属性/方法,例如Auth^_^

    但我想,你仍然可以给一个表命名为模型、控制器、视图等等。$name属性是一个别名;您可以在同一模型中创建同一表的多个实例,方法是使用不同的名称对其进行别名。您可以创建没有表的模型,并且可以在单个模型中的多个表、数据库或服务器之间切换。还可以为模型创建非数据库类型的数据对象(例如平面xml文件)。动态命名的类/方法($$Model::save()等)是在后台运行的。我在迭代中也做过类似的事情,目的是让我的应用程序干涸,我没有遇到任何问题。(尽管我个人怀疑是否真的值得你在实验中付出努力来实现一个名为model的本地模型…)

    在这一点上,Cake的API详细说明了它的所有类、方法等(根据代码库中的注释生成):


    嗯D

    根据经验,我知道不能使用“文件”和“模型”这样的表名,因为它们创建的类已经被Cake用于其他事情,如文件和模型

    我没有遇到过任何其他类似的问题,但我相信它们是可以找到的


    我建议避免使用cake核心类使用的任何名称。

    我知道这是一个有点陈旧的主题,但只是在搜索其他内容时遇到它。我认为这应该有助于回答问题2。在database.php中,您可以在
    database\u CONFIG
    class/app/CONFIG/database.php中添加db表前缀。请参阅下面配置数组中的最后一个键:

    var $default = array(
        'driver' => 'mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'user',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
    );
    

    问题是关于保留的表名,如“模型”和“对象”表,这些表的模型根据CakePHPs命名约定将成为“模型”和“对象”,而cake已经使用了这些类。如果我使用$this->Model->一些它不起作用的东西。是的,我应该说我很清楚实际的惯例和蛋糕是如何工作的。你不必为我拼写,但无论如何还是要谢谢你;)然而,最后一句话是对我第一个问题的回答,谢谢:)第二个问题我应该更详细一些,我并不是说我想打破惯例,我只是想知道是否有什么办法可以不打破惯例。我有一个表对象,我不能像那样使用它,因为已经存在该对象类。所以我的问题是,如果我真的必须在数据库中有objects表,我如何使它工作。如果没有好的方法,那么最好的解决方法是在开始时添加前缀,比如:my_objects.我刚刚在这个问题上受到了打击(Cake 2.2)。一年多以来,我一直在使用一款名为“文件”的网络应用程序。现在我终于使用了Cake的模式系统,我得到了一个奇怪的“错误:在datasource中找不到模型文件的表1”,我几乎可以肯定这是因为与核心类的命名冲突。直到现在,蛋糕才出差错!是的,我刚才去过。这是一种痛苦,但我认为,在3.0中,使用名称空间,您将能够做到这一点。