-1

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

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

}

?>

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

4

2 回答 2

1

模型::useTable

文档中所述

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

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

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

}

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

  1. 将模型名称设置为实际模型名称以外的名称是一个糟糕的主意。没有必要将其设置为任何内容,因为它的设计目的是兼容 php4。模型的名称是类名,将其设置为其他名称很容易导致混淆或意外的副作用。
  2. 用php 4 风格声明变量var,使用正在使用的php 版本的特性,即使用public、protected 或private声明变量。
于 2015-10-05T09:14:39.117 回答
1

如果您将表格从chat_info重命名为chat_infos就可以了

或者,如果您想为表保留该名称,则将其添加到您的模型中:

$useTable = 'chat_info';

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

于 2015-10-04T23:34:28.850 回答