Yii2 自定义登录-注销
Yii2 custom login-logout
我想使用 'login/register' & 'logout' links,如下图所示 - 。这里我使用自定义模板主题,所以,我不想使用默认的导航栏。但是我想使用 Yii2 的默认登录和注销功能。为此,我在 'layouts/main.php' -
中使用了以下代码
<?php
if (Yii::$app->user->isGuest) {
echo '<h2><a href="index.php?r=site/login">Login </a><a href="index.php?r=site/signup">Register</a></h2>';
} else {
echo '<h2><a href="index.php?r=site/index">Logout</a></h2>';
}
?>
正常情况下,我的场景是-首先,如果用户未登录,它会显示'login/register' links。登录成功后,它会显示'logout' link 而不是 'login/register'。然后,点击'logout' link后,退出后应该会显示'login/register'。
但此代码的问题是,在登录后,它显示修复 'logout' link 如下 - ,它不会变回 'login/register' 甚至我们点击了 'logout'。页面刷新并再次显示 'logout'。它保持固定为 'logout',直到我们清除浏览器的 coockies、缓存。
所以,请帮我解决一下。
您需要将 href 从 site/index
替换为 site/logout
else {
echo '<h2><a data-method="post" href="index.php?r=site/logout">Logout</a></h2>';
}
另外,不用直接写 href,使用 Url::to()
方法,它更灵活,如果你决定使用漂亮的 url,它会自动为你处理,你的链接将变成 index.php?r=site/logout 到 site/logout 无需更改任何代码。
else {
echo '<h2><a data-method="post" href="' . Url::to(['site/logout']) . '">Logout</a></h2>';
}
我想使用 'login/register' & 'logout' links,如下图所示 -
<?php
if (Yii::$app->user->isGuest) {
echo '<h2><a href="index.php?r=site/login">Login </a><a href="index.php?r=site/signup">Register</a></h2>';
} else {
echo '<h2><a href="index.php?r=site/index">Logout</a></h2>';
}
?>
正常情况下,我的场景是-首先,如果用户未登录,它会显示'login/register' links。登录成功后,它会显示'logout' link 而不是 'login/register'。然后,点击'logout' link后,退出后应该会显示'login/register'。
但此代码的问题是,在登录后,它显示修复 'logout' link 如下 -
所以,请帮我解决一下。
您需要将 href 从 site/index
替换为 site/logout
else {
echo '<h2><a data-method="post" href="index.php?r=site/logout">Logout</a></h2>';
}
另外,不用直接写 href,使用 Url::to()
方法,它更灵活,如果你决定使用漂亮的 url,它会自动为你处理,你的链接将变成 index.php?r=site/logout 到 site/logout 无需更改任何代码。
else {
echo '<h2><a data-method="post" href="' . Url::to(['site/logout']) . '">Logout</a></h2>';
}