当我使用附加到类控制器的函数时,它在Yii中不起作用

当我使用附加到类控制器的函数时,它在Yii中不起作用,yii,Yii,我在类控制器上附加了一个xxx函数,然后我接触了一个名为“VideoController”的文件。它是一个控制器 当我执行VideoController时,无法调用xxx函数,为什么 函数ajaxReturn: class Controller extends CController { /** * @var string the default layout for the controller view. Defaults to '//layouts/column1',

我在类控制器上附加了一个xxx函数,然后我接触了一个名为“VideoController”的文件。它是一个控制器

当我执行VideoController时,无法调用xxx函数,为什么

函数ajaxReturn:

class Controller extends CController
{
    /**
     * @var string the default layout for the controller view. Defaults to '//layouts/column1',
     * meaning using a single column layout. See 'protected/views/layouts/column1.php'.
     */
    public $layout='//layouts/column1';
    /**
     * @var array context menu items. This property will be assigned to {@link CMenu::items}.
     */
    public $menu=array();
    /**
     * @var array the breadcrumbs of the current page. The value of this property will
     * be assigned to {@link CBreadcrumbs::links}. Please refer to {@link CBreadcrumbs::links}
     * for more details on how to specify this property.
     */
    public $breadcrumbs=array();

    /**
     * zhoumengkang
     * 从Thinkphp里拖过来的
     */
    protected function ajaxReturn($data,$info='',$status=1,$type='JSON') {
        $result  =  array();
        $result['status']  =  $status;
        $result['info'] =  $info;
        $result['data'] = $data;
        if(strtoupper($type)=='JSON') {
            header("Content-Type:text/html; charset=utf-8");
            exit(json_encode($result));
        }elseif(strtoupper($type)=='XML'){
            header("Content-Type:text/xml; charset=utf-8");
            exit(xml_encode($result));
        }elseif(strtoupper($type)=='EVAL'){
            header("Content-Type:text/html; charset=utf-8");
            exit($data);
        }else{
            // TODO
        }
    }
}
但它不能被叫来

class VideoController extends Controller {
    public function actionTest() {
            $this->ajaxReturn(true,'test',1);
    }
}

在扩展之前,必须导入控制器

    Yii::import('application.controllers.Controller');
    class VideoController extends Controller {
    public function actionTest() {
            $this->ajaxReturn(true,'test',1);
    }
}

最好将您的控制器名称从
controller
更改为
someothername

该函数是公共的还是受保护的?添加您的XXX函数和videocontroller代码。请显示您的代码您确定您创建了具有ajaxReturn()的控制器类吗?@kumar_v害羞,我是新生,因此,编辑它需要很长时间。VideoController位于目录(myapp/protected/modules/admin/controller)中。如果我需要使用函数ajaxReturn(),请推荐一个类文件来添加此函数。因为我尝试添加到很多地方(比如cControl),无论添加到哪里,它总是不起作用。3Q!ajaxReturn将在我的应用程序中的任何地方使用,所以它应该放在哪里最好?然后你应该在一些常见的地方,如general/functions.php,执行ajaxReturn()。然后将functions.php包含在index.php文件中。因此,您可以在项目中的任何位置调用此ajaxReturn()。