如果不在yii框架中登录,如何重定向登录页面?

时间:2014-01-17 09:09:58

标签: yii

我有actionLogin并像这样创建cookie:

public function actionLogin()
    {
        $this->layout = 'login';

        $model=new LoginForm;

        if(isset($_POST['LoginForm']))
        {           
            $model->attributes=$_POST['LoginForm'];
            if($model->validate() && $model->login()){          
                $cookie = new CHttpCookie('loginSuccess',$model->username);
                $cookie->expire = 604800;                   
                Yii::app()->request->cookies['loginSuccess'] = $cookie;         
                $this->redirect('/ktbeauty/index.php/categories/index');
            }           
        }

        $this->render('login',array(
            'model'=>$model,
        ));
    }

现在我有一些控制器必须在访问控制器之前检查登录,如果没有登录,它必须重定向到登录页面,我该如何工作呢?

非常感谢

2 个答案:

答案 0 :(得分:0)

在您的控制器的操作中,您可以尝试这样的事情

public function actionGoToLogin()
{
if(!Yii::app()->user->isGuest)
            {
             // do something if user is authenticated   
            }
            else
            {
                Yii::app()->user->loginRequired();
              // or if you want you can redirect using Yii::app()->createUrl('controller/login');
            }
}

答案 1 :(得分:0)

在Controller中,您有如下功能:

public function accessRules() {

您可以在此处定义可以访问这些功能的操作和用户。 如果您尚未登录,则默认情况下会重定向到登录页面。

默认情况下,此功能在YII中可用。

检查此网址: http://www.yiiframework.com/wiki/169/configuring-controller-access-rules-to-default-deny/