Yii2 使用计时器重定向

Posted

技术标签:

【中文标题】Yii2 使用计时器重定向【英文标题】:Yii2 redirect with timer 【发布时间】:2015-05-11 19:46:01 【问题描述】:

我想在更改密码后注销用户,但也想向他们显示密码已更改的通知。

因此,为了做到这一点,我想使用一个计时器为 2-5 秒的重定向命令。遗憾的是,我在任何地方都找不到它。

有什么帮助吗?!

截图:

【问题讨论】:

为什么不在登录表单上显示此通知? 以这种方式显示通知不是正确的做法。首先,您应该注销用户并使用上述通知将他重定向到登录页面。 你可以使用闪信。 【参考方案1】:

只需执行以下操作。注销用户然后将他发送到登录页面。

public function actionPasswordChangeFunction()

    ...........

    Yii::$app->user->logout();
    \Yii::$app->getSession()->setFlash('reLog', 'Password Changed Successfully.');
    return $this->redirect(['login_form_path']);

在您的登录页面上:

<?= Yii::$app->session->getFlash('reLog'); ?>

【讨论】:

即使我没有要求这个,我使用你的方法只是因为它更好..谢谢!【参考方案2】:

您需要使用 javascript 运行重定向。 为此,您需要在生成的视图中包含以下 javascript。下面的示例将在重定向到您从 php 传递的 redirectURI 之前等待 5 秒

<script>
    setTimeout(function() 
        window.location.replace("<?php echo $redirectURI ?>");
    , 5000); 
</script>

【讨论】:

这是我问题的正确答案,但另一种方法比我的要好。仍然 +1 !谢谢

以上是关于Yii2 使用计时器重定向的主要内容,如果未能解决你的问题,请参考以下文章

用计时器重定向

codeigniter 301 使用路由器重定向旧网址,并且没有重定向

客服端重定向和服务器重定向

node服务器重定向

使用反应路由器重定向

服务器重定向和客户端重定向