2016-05-30 9 views
0

Hallo, ich habe zwei Login-Systeme in meiner yii2-Anwendung One ist Standard-Login-System mit Benutzer Tabelle und zweite ist sms_account Tabelle. In benutzerdefinierten Controller habe ich Aktion für die Anmeldung erstellt, actionLogin(). Ich habe die Zugriffskontrolle für meinen benutzerdefinierten Controller hinzugefügt. Das Problem, das ich Problem habe, dass, wenn eine Person nicht eingeloggt ist, es umleitet Website/Login Ich möchte ändern Redirect zu Custom-Controller/Login URL in yii2 Zugriffskontrolle. Mein Code ist:Wie ändere ich die Zugangskontrolle Umleitung/Login URL in yii2?

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' => ['@'] 
       ] 
      ] 
     ] 
    ]; 
} 

Kann mir jemand sagen, wie man Zugangskontrollurl ändert. Danke im Voraus!

Antwort

0

Versuchen Sie diesen Code. Hinweis: Rollen

[ 
    'actions' => ['home'], 
    'allow' => true, 
    'roles' => ['?'] 
    'matchCallback' => function ($rule, $action) { 
     return $this->redirect('index.php?r=controller/action'); 
    } 
] 
3

Sie sollten einfach Ihren Benutzer Komponente konfigurieren:

'user' => [ 
    // ... 
    'loginUrl' => ['custom-controller/login'], 
], 

Lesen Sie mehr über yii\web\User::$loginUrl.

Und es sollte sein:

[ 
    'actions' => ['login'], 
    'allow' => true, 
    'roles' => ['?'] 
], 

Lesen Sie mehr über Authorization in Yii2.