Thinkphp6.x 无法使用cookie和session 解决办法
今天把想学习下tp6 ,毕竟现在基本已经成了主流了,但是在开发过程中,遇到了一个很鸡肋的一个坑,就是session 不能跨控制器使用,官方文档也没有给出什么注释
今天把想学习下tp6 ,毕竟现在基本已经成了主流了,但是在开发过程中,遇到了一个很鸡肋的一个坑,就是session 不能跨控制器使用,官方文档也没有给出什么注释
咱们先来看看官方的使用方法
使用session需要引入session类可以直接使用think\facade\session
,这个我就不多说了
需要注意的坑来了
session
功能默认是没有开启的(API应用通常不需要使用session
),如果你需要使用Seesion
,需要在全局的中间件定义文件中加上下面的中间件定义:
'think\middleware\sessionInit'
如果是多应用模式,并且你只是用于部分应用,那么也可以在应用中间件定义文件中单独开启。
全局的中间件文件在app目录下middleware.php
里面有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/