yii网站开发技巧 要求全站登录才访问

最近在用Yii框架开发几个网站,国内的资料实在是太少了,关于中文方面的。还好我的英文水平不错,总能搜索到国内相关的资料。国内用Yii的程序员也不少。这里就直接分享一些我遇到的问题。为了不妨碍我自己的工作,我直接简要的贴代码和摘取的网址了。有问题的可以直接到我的个人网站留言或和我联系:www.denispan.com

今天分享的一个Yii做系统的时候,要求全站登录才访问的功能。网站也有不少的解决方案,简单的说一下大致这几个方向:

  1. 通过控制器controller的access动作来控制每一个控制器的访问权限,这个是初级的
  2. 通过每个控制器的beforeAction或者beforeController函数来控制访问控制器前必须登录
  3. 最后一个就是我要介绍的,最懒最快捷的方式,使用behavior方式。

好了。介绍完了。我直接贴代码:

先新建这个文件

components/ApplicationBehavior.php

<?php
class ApplicationBehavior extends CBehavior
{       private $_owner;
        
        public function events() 
        {

                    return  array(
                               'onBeginRequest'=>'denyEverything',     
                                
                        );
        }
        
        public function denyEverything()
       {
                $owner=$this->getOwner();
                if($owner->user->getIsGuest())
                        $owner->catchAllRequest=array("site/login");
       }
}
?>

然后修改系统配置

main.php

'behaviors'=>array(
    'class'=>'application.components.ApplicationBehavior',
      ),

搜索资料来自这里:http://www.yiiframework.com/forum/index.php/topic/23438-redirect-to-login-for-guest-users-in-every-controller/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章