【问题标题】:Fatal error: Class 'AppModel' not found in .../lib/Cake/Utility/ClassRegistry.php on line 186致命错误:在第 186 行的 .../lib/Cake/Utility/ClassRegistry.php 中找不到类“AppModel”
【发布时间】:2021-08-11 18:41:20
【问题描述】:

我正在尝试为我的 Cakephp 应用程序定义一个外壳。这是代码:

<?php

App::uses('AppModel','Model');

class UserShell extends AppShell {

    public $uses = array('User');

    public function show() {
        $user = $this->User->findByUsername($this->args[0]);
        $this->out(print_r($user, true));
        }
}

?>

但是当我尝试执行命令时

./cake user show anyUserName

控制台返回错误

Class 'AppModel' not found in /var/www/cakeprova_2.5.7/lib/Cake/Utility/ClassRegistry.php on line 186

我有文件 AppModel.php 在它自己的位置,所以我不知道出了什么问题...有人可以帮我吗?

【问题讨论】:

    标签: cakephp console


    【解决方案1】:

    您使用 App::uses() 错误。 它的目的是在 此文件 中包含您需要的类,而不是在其他文件中。 所以

    a) 修正这个 shell 文件中的语句,并添加 App::uses('AppShell', 'Console/Command');

    b) 您很可能在您的用户模型类文件中缺少App::uses('AppModel','Model');。 因为你在说class User extends AppModel {},对吧?

    【讨论】:

    • 谢谢马克!错误得到解释:我将文件放在错误的目录中:/lib/Cake/Console/Command 但在将其放在正确的目录中之后:/app/Console/Command 它起作用了。但是非常感谢您的帮助
    • 尽管如此,我的陈述仍然有效。对 App::uses() 语句进行详细和正确的处理。
    【解决方案2】:

    谢谢马克!错误解释:我把文件放错目录了:

    /lib/Cake/Console/Command
    

    但是在把它放在正确的目录之后:

    /app/Console/Command
    

    成功了。但是非常感谢您的帮助

    【讨论】:

      【解决方案3】:

      我在将 cakephp 1.3 迁移到 2.10 时发现了这个错误

      我如下更新 Model/AppModel.php 并修复了错误。

      App::import('Vendor', 'Find.find_app_model');
      class AppModel extends FindAppModel {
      

      App::uses('Model', 'Model');
      class AppModel extends Model {
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-19
        • 2020-04-12
        • 2012-08-03
        • 2012-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-19
        相关资源
        最近更新 更多