lylboy 2012-10-08 10:48:18 4688次浏览 7条回复 0 0 0

我对登录用户有个单独的针对其session的判断,所有controller都需要进行核对通过才可以继续访问, 在yii里我写在哪里啊? 我试着在components下Controller.php里写了一个public function check(){} 但是在Controller的子类如class YiyController extends Controller{}里的

public function actionIndex(){
$this->check();
parent::check();
上面这两种方法都提示找不到此类?
}

页面提示: YiyController and its behaviors do not have a method or closure named "check".

求指教

  • 回复于 2012-10-08 11:05 举报

    在components下Controller.php import了吗?

  • 回复于 2012-10-08 11:08 举报

    Controller.php里直接是
    class Controller extends CController
    YII在调用Yiycontroller时是:
    class YiyController extends Controller{
    会直接autoload啊

  • 回复于 2012-10-08 11:16 举报

    在components下Controller.php里写一个beforeAction(){},里面写上你要的逻辑 ,这样每次执行action时都会去判断了

  • 回复于 2012-10-08 11:19 举报

    楼上的方法更好。不过,楼主的问题还是需要解决,发下全部代码看看。

  • 回复于 2012-10-08 11:32 举报

    我现在其它地方都没改:就改components下面的Controller.php在类最后就只增加

    public function check(){	
        echo 'yes';
    }
    

    然后就是在Yiycontroller控制器里增加

    public function actionIndex(){	
        parent::check();
    }
    

    也用过 $this->check();
    提示:YiyController and its behaviors do not have a method or closure named "check".
    就是这样的

  • 回复于 2012-10-08 14:17 举报

    配置文件里有这个吗?

    // 自动载入 model 和 component 类
    'import'=>array(
        'application.models.*',
        'application.components.*',
    ),
    
  • 回复于 2012-10-08 14:26 举报

    多谢!已解决。thanks

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