我有以下配置组件 user
'user' => [
'identityClass' => 'app\models\web\User',
'enableAutoLogin' => true,
'loginUrl'=>['/backend/login'],
],
Run Code Online (Sandbox Code Playgroud)
我有2个模块backend和frontend.我想如果用户去后端部分需要使用以下规则,'loginUrl'=>['/backend/login']并且如果要参与此规则的部分'loginUrl'=>['/frontend/login'].我怎样才能做到这一点?
对于任何模块或控制器,您可以使用模块或控制器中的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']);
},
],
];
}
Run Code Online (Sandbox Code Playgroud)
或者在Module类文件中:
public function init()
{
parent::init();
Yii::$app->user->loginUrl = ['/your/login/url'];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7033 次 |
| 最近记录: |