Cakephp表名约定

时间:2014-02-25 07:50:03

标签: php cakephp naming-conventions

我在Joomla中有一个现有网站。我希望在CakePHP中使用相同的现有Joomla站点数据库的新应用程序。

所以这是表名的问题。请建议我如何在market_type中使用该表(例如listing_typeCakephp以单数形式),因为在cakephp标准中我们使用复数形式的表格。

4 个答案:

答案 0 :(得分:9)

您可以在模型中定义表名

class Example extends AppModel {
public $useTable = 'exmp'; // This model uses a database table 'exmp'
}

Use Table Cakephp

答案 1 :(得分:2)

您还可以向变形器添加自定义规则。通过这种方式,面包师也可以理解你的表名。

// somewhere in your bootstrap.php
Inflector::rules('plural', array('irregular' => array('singular' => 'plural')));

答案 2 :(得分:2)

你也可以使用Inflector的方法classify()和tableize()来找出Cake期望作为给定模型的表名/模型名称。对您的示例进行简单的逆向工程就可以解释这一点:

    $model = Inflector::classify('market_type');

会给你

    MarketType

作为预期的型号名称。

因此,表名是:

    Inflector::tableize('MarketType');

给出了

    market_types

表示您方案中第一个提到的表格。

在使用CakePHP中的字符串时,Inflector类有许多有用的方法,请参阅此处的文档: CakePHP 2.x: Inflector

这些实际上是Cake公约的正确名称,我强烈建议在使用框架时坚持这一点。

答案 3 :(得分:0)

您可以使用模型(您要在其中使用该表)绑定任何表:

public $ useTable ='tablename';

但是在cakePhp表名称约定中隐含的关系是模型名称的复数。