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

今天把想学习下tp6 ,毕竟现在基本已经成了主流了,但是在开发过程中,遇到了一个很鸡肋的一个坑,就是session 不能跨控制器使用,官方文档也没有给出什么注释

今天把想学习下tp6 ,毕竟现在基本已经成了主流了,但是在开发过程中,遇到了一个很鸡肋的一个坑,就是session 不能跨控制器使用,官方文档也没有给出什么注释

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

使用session需要引入session类可以直接使用think\facade\Session,这个我就不多说了

需要注意的坑来了

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

'think\middleware\SessionInit'

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

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

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

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

初始化了session或cookie 后,你如果在session或cookie后使用die 或exit,那么很荣幸告诉你踩到雷了,tp6在使用die 或 exit 后session或cookie 会消失,这点目前官方还没到一个很好的解决办法和回答

解决办法

1、使用Cache替代

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

以上这篇Thinkphp6.x 无法使用cookie和session 解决办法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持芦苇派。

原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/php/1625817545/