onunix 2012-09-11 14:51:57 4019次浏览 4条回复 0 0 0

我看了下自动生成的控制器的代码,里面没有 include "abc.php",却可以直接用abc::model,

例如: Yii\protected\controllers\abccontroller.php

public function loadModel($id)
{
    $model=abc::model()->findByPk($id);
    if($model===null)
        throw new CHttpException(404,'The requested page does not exist.');
    return $model;
}

我新建立了一个目录和文件: YYii\applicationdemo\upload.php 要使用模型文件,如abc::model,却出错提示找不到,

在upload.php中加了 include "abc.php“,又说: Fatal error: Class 'CActiveRecord' not found in......

为什么自动生成的代码能够找到模型文件,我写的文件却找不到模型文件呢?

  • 回复于 2012-09-11 15:21 举报

    不要用include,要用import。
    在配置文件里的import里加载了吗?

    // 自动载入 model 和 component 类
    'import'=>array(
    		'application.models.*',
    		'application.components.*',
    ),
    
  • 回复于 2012-09-11 15:33 举报

    因为我新建立了一个目录,新写了些文件,因此肯定这些目录和文件没有和配置文件发生关系,因此就没有import这些类了,那我是否 include 这个配置文件就可以了? 我试着include了这个配置文件,还是不能用model文件,这是为什么呢?该如何解决呢?

  • 回复于 2012-09-11 16:06 举报

    你可以把这样的第三方的文件拷贝到extensions目录里,这样比你这种要方便多了。

  • 回复于 2012-09-11 16:13 举报

    我知道了......

您需要登录后才可以回复。登录 | 立即注册