yii框架退出

方法一

直接上代码:

<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方法接值,尽管这个地方没有发送值,废话不多说,直接看源代码

yii框架退出

如果允许GET访问的话,那么可以把箭头指向的地方改成:get

再看修改完成后的代码

yii框架退出



OK  完美 。