请教 session 闪存、自定义驱动及清除等的一些问题
**Q**
谢谢大家,我是新手,请教几个不明白的问题,
$request->session()->pull('key','default')
和$request->session()->forget('key')
的区别之处?- 重新生成
SessionID
后,这个id我们有用到吗,主要是用来干啥的? flash
与reflash
的区别是啥?flash
的保留到下次请求之前和keep
的只保留一次有何异同?- 自定义驱动部分有
open
、close
都不用写内容,read
和write
写的代码内容是从数据库中读和存的操作吗?
引用文档:
由此可见,
pull
方法在删除该条数据的同时,将会返回该数据的值,你可以通过返回值接收;而forget
方法则是直接删除,并不会返回该数据的值。你可以通过这两个词的英文语义来区分它们。在你的业务逻辑代码内是不需要关心这一点的,Laravel 会自动处理。有兴趣的话可以了解下 Web 应用中 Session 机制和 Cookies 的关系,实际上 Session 的数据是存储在服务端的,浏览器端只是通过 Cookie 来存储该 Session 数据的 ID。
由于中文文档翻译不准确的原因,我重新查阅了官方对于
reflash()
/flash()
/keep()
方法的描述:也就是说,当你执行
flash()
方法,在第二次请求后这些一次性数据将被删除。如果你想在第二次请求内让这些数据保留到第三次请求,那就需要执行reflash()
,如果你只想让一部分数据保留到第三次请求,那就使用keep()
方法即可。以此类推,可以每次请求都给这些数据「续命」一次😂。不一定,具体看是什么驱动,文件驱动写文件,数据库驱动写数据库。你也可以写到任何自己想要实现的地方。