在Yii2中如何在进入管理员页面之前获得登录页面?

brccelvz  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(158)

我试图在Yii2中进入管理页面之前获得登录页面。例如,当我在浏览器上写http://project/admin/时,应该在登录页面上将我重定向为http://project/admin/login。请任何人帮助我。
单位:Module.php

public function behaviors(){
        return [
            'access' => [
                'class' => \yii\filters\AccessControl::className(),
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['@']
                    ],
                ],
            ],
        ];
    }

public function init()
    {
        parent::init();
        Yii::$app->user->loginUrl = '/admin/main/login';
    }
5fjcxozz

5fjcxozz1#

你只需要设置规则(在你的行为方法中),规定当用户登录或不登录时允许访问哪些操作。在你的例子中,登录操作可以在用户不登录时访问,如下所示:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['login'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                [
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
    ];
}

相关问题