Cakephp 3 - 以复数形式命名约定

时间:2016-06-27 04:27:39

标签: cakephp model naming-conventions cakephp-3.2

也许这是一个简单的问题,但我没有在食谱中找到它。 当使用' ies"

的某些复数词的名称时,我感到困惑

实施例: 城市 - >城市

  • Controller:CitiesController

  • 表:CitiesTable

  • 型号:城市????或Citie ???

现在我在运行应用程序时都出错了。错误确实找不到型号名称。

感谢您的回答,对不起,如果我的英语太糟糕了。

2016年6月28日更新 我找到了解决方案。事实上,我只是保留了他们的名字:

  • 控制器:src / Controller / CitiesController.php中的 CitiesController

  • 表格:src / Model / Table / CitiesTable.php中的 CitiesTable

  • 模型或实体:src / Model / Entity / City.php中的城市

它对我有用。

感谢所有人。

2 个答案:

答案 0 :(得分:1)

控制器/实体/表名的一般用法是名词的单数形式(在您的情况下为CityControllerCityTableCity)。这消除了单数和复数之间的混淆。

另一个好的做法是,DB中的表格以其所代表的实体的单数命名(例如,您的表格为city,因此您的Table类应该被称为' CityTable&#39 ;)。因此,您始终可以将源中的信息与数据库中的表相关联。

答案 1 :(得分:0)

2016年8月11日更新

大家好,

很抱歉很长时间来回答这个问题。我很忙。我找到了答案。我没有使用“城市”表。我改用了“m_cities”。 (M代表大师)。所以我的所有文件和类名都是:

模型>实体:

MCity.php 

类别:

class MCity extends Entity{
... 
}

模型>表

MCitiesTable.php

类别:

class MCitiesTable extends Table
{
...  
}

在文件MCity.php中的MCity类中。我使用以下内容定义了初始化,以声明CakePHP的表名,了解我的表名。

parent::initialize();
//Define used table name in database
$this->table('m_cities');

这节课的最终内容是:

class MCity extends Entity
{
    public function initialize(array $config)
    {
        parent::initialize();
        //Define used table name in database
        $this->table('m_cities');

    }//end initialize

}//end class

到目前为止,我的项目一切正常。因为有人没有在帖子中看到我的更新所以我重新更新为搜索人的答案。

谢谢大家。