【问题标题】:Model class not found找不到模型类
【发布时间】:2009-12-10 20:09:46
【问题描述】:

我正在尝试 cakePHP,所以我有一个非常简单的网站。我收到以下错误。

类标签扩展 AppModel { $name = 'Tag'; } 致命错误:在第 140 行的 /home/downtown/public_html/test_cake/cake/libs/class_registry.php 中找不到类“标签”

在 ..\app\models\tag.php 我有

class Tag extends AppModel { $name = 'Tag'; }

我犯了什么愚蠢的错误? 我已经尝试清除 tmp/cache 并从头开始重新加载 cakePHP。 我在 Google 搜索中看到过这个错误,但这是一个相对明显的语法错误。

cakephp 回答系统没有给我发送确认邮件,所以我必须在这里问这个问题。

【问题讨论】:

  • /home/downtown/public_html/test_cake/cake/libs/class_registry.php 的第 140 行有什么内容?
  • class_registry.php 是一个内部 CakePHP 文件,一般处理类,如路径所示。
  • 有问题的行是:${$class} =& new $class($settings);
  • @Jim,这实际上与“真正的”错误无关,它只是第一行代码,它嘲笑以前出错的东西。正如我在下面解释的那样,目前有两种可能性似乎是最合乎逻辑的一次。 'var',即使已弃用,也将 $name 变量表示为类 var,没有它只是一个“正常”变量。

标签: php cakephp


【解决方案1】:

是的,这很愚蠢。

文件开头和结尾缺少标签。

【讨论】:

    【解决方案2】:

    可能是,“tag”是 CakePHP 中的保留字,尝试使用另一个类名,如果再次遇到此错误,请报告。

    我的建议:

    • 谷歌群组中的 cakephp

    建议:

    用途:

    var $name = 'Tag';
    

    而不是

    $name = 'Tag';
    

    【讨论】:

    • 我在另一个类名为“Note”的模型上遇到同样的错误。
    • 你试过我的建议了吗?使用更抽象的东西,完全小写,例如'铅笔'
    • 为了澄清这一点,我确实创建了一个名为 pencils 的表和一个名为 Pencil 的类,并得到了同样的错误。前导大写字符是 cakePHP 命名约定的要求。 Google 上的 cakephp 也已关闭。
    • 我可以给你发个邀请,我从来没有在 google 群组上认出 CakePHP 是关闭的,我想它仍然是开放的,我今天访问了这个网站。
    【解决方案3】:

    问题一定是你没有声明同名的模型。尝试查看您的模型并证明名称相同。如果您更改模型的名称,则错误与您在此处解释的相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-09
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多