cakephp中表,模型文件和模型类的命名约定

时间:2015-10-03 14:35:25

标签: php cakephp cakephp-2.x

我正在使用cakephp 2.6.9。我有一个名为:chat_info和模型文件的表:ChatInfo.php和ChatInfo中的类:

 <?php
/**
* 
*/
class ChatInfo extends AppModel
{
    var $name = "chatinfo";

}

?>

但它显示错误。我搜索了这个错误,发现这是由于cakecaphp中命名约定违规造成的。但是我在这里做错了什么

2 个答案:

答案 0 :(得分:1)

如果您要将表格从 chat_info 重命名为 chat_infos ,那就没问题了

或者,如果您想为表格保留该名称,请在模型中添加:

$useTable = 'chat_info';

并且您的模型将与表chat_info(没有复数模式)相关联

答案 1 :(得分:1)

型号:: useTable

the docs中找到:

  

useTable属性指定数据库表名。默认情况下,模型使用模型类名的小写复数形式

公约并非旨在成为牢不可破的规则。如果遵循这些准则,它们会使生活更轻松。这并不意味着必须遵循它们。使用useTable可以使用任何表名,在这种情况下:

class ChatInfo extends AppModel
{
    public $useTable = "chat_info";

}

两个旁白,假设您实际上没有使用php4:

  1. 将模型名称设置为实际模型名称以外的其他内容是一个糟糕的想法。没有必要将它设置为任何东西,因为它的设计目的是php4兼容性。模型的名称为the class name,将其设置为其他内容很容易导致混淆或意外的副作用。
  2. 使用var声明变量是php 4样式,使用正在使用的php版本的功能,即使用public, protected or private声明变量。