Php Yii2如何更改组件用户模块中的loginUrl
我有以下配置组件Php Yii2如何更改组件用户模块中的loginUrl,php,yii2,Php,Yii2,我有以下配置组件user 'user' => [ 'identityClass' => 'app\models\web\User', 'enableAutoLogin' => true, 'loginUrl'=>['/backend/login'], ], 我有两个模块后端和前端。我希望如果用户转到后端部分需要使用以下规则'loginUrl'=>['/backend/login'],如果转到前端部分,则使用
user
'user' => [
'identityClass' => 'app\models\web\User',
'enableAutoLogin' => true,
'loginUrl'=>['/backend/login'],
],
我有两个模块
后端
和前端
。我希望如果用户转到后端部分需要使用以下规则'loginUrl'=>['/backend/login']
,如果转到前端部分,则使用此规则'loginUrl'=>['/frontend/login']
。如何才能做到这一点?如果使用高级模板,则有两个配置文件
backend / config / main.php
frontend / config / main.php
分开。
您可以单独配置相应的URL登录。对于任何模块或控制器,您可以使用模块或控制器中的AccessControl行为重定向到登录操作:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login'],
'allow' => true,
'roles' => ['?'],
],
[
'actions' => ['index'],
'allow' => true,
'roles' => ['@'],
],
],
'denyCallback' => function($rule, $action) {
return Yii::$app->response->redirect(['/your/login/url']);
},
],
];
}
或在模块类文件中:
public function init()
{
parent::init();
Yii::$app->user->loginUrl = ['/your/login/url'];
}
这应该是公认的答案,固溶体时,使用两个或两个以上模块单独登录基本模板,谢谢!