我有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,
));
}
现在我有一些控制器必须在访问控制器之前检查登录,如果没有登录,它必须重定向到登录页面,我该如何工作呢?
非常感谢
答案 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/