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/

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