2016-05-05 85 views
0

我想添加一些東西到登錄視圖在yii,但我只想這樣做,如果用戶通過嘗試訪問其他控制器/操作被重定向到該頁面。 有沒有辦法知道用戶是直接重定向還是訪問登錄鏈接?yii檢查用戶是否被重定向到登錄頁面

+0

請澄清你的問題,所以我們可以給你一個容易的建議。 –

+0

因此,如果在我的網站中,如果我轉到需要驗證才能繼續的視圖,我將被重定向到登錄視圖。或者,我可以直接訪問登錄視圖,方法是輸入url或點擊登錄鏈接。 有沒有辦法知道我是直接進入登錄視圖還是重定向? –

回答

0

@Pedro薩爾加多,

我在這裏談論Yii2, 所以首先你必須設置在組件陣列配置文件,

'user' => [ 
    'identityClass' => 'common\models\Users', 
    'enableAutoLogin' => true, 
    'loginUrl' => ['site/login-page'], 
], 

根據您的設置,

做以下在您要進行身份驗證的控制器操作中,

public function actionDetails() 
{ 
    if (Yii::$app->user->isGuest) 
    { 
    return $this->redirect(['site/login']); 
    } 
} 

希望它能幫助你。

+0

嗨Sanhay,謝謝你的回答,但那不是我所需要的。讓我以一個例子來嘗試這個。 我有控制器/行動帳戶/儀表板,當我去這個網址(沒有被認證),我被自動重定向到帳戶/登錄。這是因爲我知道帳戶控制器上的accessRules功能。 我需要知道的是,用戶如何進入帳戶/登錄視圖,如果是通過轉到帳戶/儀表板或直接訪問帳戶/登錄 –

0

聽起來你已經設置了RequireLogin或類似的東西,所以我假設你已經這麼做了。

在你RequireLogin類,你可能有類似這樣的東西...

if(Yii::app()->user->isGuest && !in_array($_SERVER['REQUEST_URI'], $allowedSites)){ 
    Yii::app()->user->loginRequired(); 
} 

loginRequired()

右側添加Yii::app()->user->setFlash('redirected', true);然後,在你登錄視圖...

<?php if(Yii::app()->user->hasFlash('redirected'): ?> 
<!-- stuff added here will only show up if redirected --> 
<?php endif; ?> 
相關問題