Thinkphp6.x 无法使用cookie和session 解决办法

        今天,把学习tp6 过程中,遇到的一个让我爆粗口的坑,向大家说明一下

        遇到了一个很隐晦的一个坑,就是session 不能跨控制器使用,官方文档也没有给出什么注释

咱们先来看看官方的使用方法

​

使用session需要引入session类可以直接使用think\facade\session,
​

这个我就不多说了,需要注意的,坑来了!!!坑来了!!!坑来了!!!

session功能默认是没有开启的(API应用通常不需要使用session),如果你需要使用Seesion,需要在全局的中间件定义文件中加上下面的中间件定义:
 

'think\middleware\sessionInit'

如果是多应用模式,并且你只是用于部分应用,那么也可以在应用中间件定义文件中单独开启。

全局的中间件文件在app目录下middleware.php

里面有session的初始化,默认是注释的,取消注释即可,之后就可以使用session 了,一般开启

composer require topthink/think-multi-app

既然都准备好了,在调试时会不会使用下面这样的内容调试??尤其是登陆需要存储cookie时

echo json_encode();exit;
echo json_encode($arr);die();

下面才是我重点要说的,让我难受香菇的!

        tp6在初始化了session或cookie 后,你如果在session或cookie后使用die 或exit,session或cookie 会消失!!!会消失!!!会消失!!!

解决办法

1、使用Cache替代

2、可以使用原生的$_session ,$_COOKIE替代

        以上这篇thinkphp6.x 无法使用cookie和session 解决办法就是分享给大家的全部内容了,希望能给大家一个参考,这就是花费了我两天时间来调试,为什么cookie没有成功设置进去,让我万分暴躁,终于在刚才,找到了这个原因,希望大家在学习或开发tp6时,不在再踩坑,其他类似tp5,我暂不知道是否也存在这个问题,大家多多避坑


 

猜你喜欢

转载自blog.csdn.net/ITMyFavorite/article/details/130285526
今日推荐