方法一
直接上代码:
<form action="?r=site/logout" method="post">
<input type="hidden" name="_csrf-frontend" value="<?php echo yii::$app->request->csrfToken?>"><input type="submit" value="退出">
</form>
只需要把方法一代码添加上就能使用退出了,原理是通过yii框架的Yii::$app->user->logout()删除登陆的cookie;
方法二
一句代码退出:
<a href="<?= Url::toRoute('site/logout');?>">退出后台</a>
但是你会发现它报错了,它竟然报错了
PHP Fatal Error – yii\base\ErrorException
Class 'Url' not found
这个错误是URL类不存在这时候在你要在执行退出的脚本是加一行代码声明,use yii\helpers\Url;
再去执行,你会发现又报错了
Method Not Allowed (#405) Method Not Allowed. This url can only handle the following request methods: POST. The above error occurred while the Web server was processing your request. Please contact us if you think this is a server error. Thank you.
这是因为site控制器里边配置了
logout方式只能通过post方法接值,尽管这个地方没有发送值,废话不多说,直接看源代码
如果允许GET访问的话,那么可以把箭头指向的地方改成:get
再看修改完成后的代码
OK 完美 。