2016-03-02 25 views
0

作出必要的,因爲我在Yii2 require all Controller and Action to login沒有如說,所有控制器和動作的登錄需要登錄,並添加以下代碼web.phpYii2 Dektrium用戶,讓所有的行動和所有的控制器

'as beforeRequest' => [ 
     'class' => 'yii\filters\AccessControl', 
     'rules' => [ 
       [ 
         'allow' => true, 
         'actions' => ['login', 'forgot'], 
       ], 
       [ 
         'allow' => true, 
         'roles' => ['@'], 
       ], 

     ], 
     'denyCallback' => function() { 
       return Yii::$app->response->redirect(['user/login']); 
     }, 
], 

但問題是所有其他行動,如忘記密碼被重定向到登錄頁面,我想從登錄所需條件中排除用戶/忘記路線。請幫忙!

謝謝

+0

你在哪個控制器中輸入了代碼?和哪個控制器是actionForgot? – scaisEdge

+0

@scaisEdge正如我在我的文章中所說,我已將它添加到config/web.php中,actionForgot是用於dektrium擴展的用戶控制器! – pooria

回答

0

沒有測試過,但它應該工作。

'denyCallback'=>function() { 
      if($this->action->id == 'forgot') 
       return Yii::$app->response->redirect(['whatever/whatever']); 
      else 
       return Yii::$app->response->redirect(['user/login']); 
},... 
+0

謝謝,但沒有! '錯誤PHP致命錯誤'yii \ base \ ErrorException'帶有消息'當不在對象上下文中時使用$ this'。而且我認爲它可能會陷入重定向循環 – pooria

相關問題