致命错误:Class' AppModel'在第186行的/ lib / Cake / Utility / ClassRegistry.php中找不到

时间:2014-12-24 16:37:20

标签: cakephp console

我试图为我的Cakephp应用程序定义一个shell。这是代码:

<?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放在自己的位置,所以我不知道出了什么问题......有人能帮帮我吗?

3 个答案:

答案 0 :(得分:1)

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

a)修复此shell文件中的语句,然后添加App::uses('AppShell', 'Console/Command');

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

答案 1 :(得分:0)

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

/lib/Cake/Console/Command

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

/app/Console/Command

它奏效了。但非常感谢你的帮助

答案 2 :(得分:0)

我在将 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 {