如何在Yii2中更改访问控制器重定向/登录URL?

Ily*_*rim 0 php redirect yii2 yii2-advanced-app

我的Yii2应用程序中有两个登录系统.首先是使用User表的默认登录系统,第二个是使用sms_account表.在自定义控制器中,我已经创建了登录操作actionLogin().我已经为我的自定义控制器添加了访问控制,但我遇到的问题是当一个人没有登录时,它会重定向到site/login.我想custom-controller/login在Yii2访问控制中更改重定向到URL.我的代码是:

public function behaviors()
{
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'delete' => ['post'],
            ],
        ],
        'access' => [
            'class'  => AccessControl::className(),
            'rules' =>  [
                [
                    'actions' => ['login'],
                    'allow' => false,
                    'roles' => ['@']
                ],
                [
                    'actions' => ['home'],
                    'allow' => true,
                    'roles' => ['@']
                ]
            ]
        ]
    ];
}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何更改访问控制URL?

soj*_*oju 6

您应该只需配置您的用户组件:

'user' => [
    // ...
    'loginUrl' => ['custom-controller/login'],
],
Run Code Online (Sandbox Code Playgroud)

了解更多yii\web\User::$loginUrl.

它应该是:

[
    'actions' => ['login'],
    'allow' => true,
    'roles' => ['?']
],
Run Code Online (Sandbox Code Playgroud)

阅读有关Yii2中授权的更多信息.