如果不在yii框架中登录,如何重定向登录页面?
我有actionLogin并创建cookie,如下所示:如果不在yii框架中登录,如何重定向登录页面?,yii,Yii,我有actionLogin并创建cookie,如下所示: public function actionLogin() { $this->layout = 'login'; $model=new LoginForm; if(isset($_POST['LoginForm'])) { $model->attributes=$_POST['LoginForm'];
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,
));
}
现在我有一些控制器,在访问控制器之前必须检查登录,如果不登录,它必须重定向到登录页面,我该如何处理
非常感谢在控制器的操作中,您可以尝试这样的操作
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');
}
}
在控制器中,您具有以下功能:
public function accessRules() {
在这里,您可以定义可以访问这些功能的操作和用户。
若你们并没有登录,那个么默认情况下它会重定向到登录页面
默认情况下,此功能在YII中可用
检查此URL:
@让我们看看如何将上述代码用于所有控制器?因为上面的代码将被重复使用>我只想立即使用代码。