Ich habe eine Menge Antworten darauf gefunden, wie man Zugangskontrolle erstellt, die eine Anmeldung an allen Controllern und Aktionen erfordert.Yii2 alle Controller und Aktionen erfordern Login, müssen einige Ausnahmen hinzufügen. Wie kann ich es tun?
Der folgende Beitrag zeigt, wie ich alle Controller Anmeldung erfordern tat:
Yii2 require all Controller and Action to login
Ich habe den Code unten unter meiner Komponenten verwendet:
'as beforeRequest' => [
'class' => 'yii\filters\AccessControl',
'rules' => [
[
'allow' => true,
'actions' => ['login', 'error'],
],
[
'allow' => true,
'roles' => ['@'],
],
]
],
Aber ich einige hinzufügen möchten Ausnahmen davon. Bei einigen Controllern müssen einige Aktionen für Guest sichtbar sein.
Ich habe versucht, in meinem Verhalten auf ReportsController diesen Code zu verwenden:
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'allow' => true,
'actions' => ['share'],
'roles' => ['?'],
],
],
]
noch anmelden erhalten umgeleitet.
Ich versuche, actionShare ($ param) {} Öffentlichkeit Gäste zu machen.
Was fehlt mir?
Vielen Dank für Ihre Hilfe!
so haben Sie ' 'denyCallback' => function() { zurück Yii :: $ app-> response-> redirect (['site/login']); }, 'direkt unter der Konfiguration Ihrer Komponenten? – Kyle
Ja, ich habe den denyCallback so definiert. –