欢迎来到Introzo百科
Introzo百科
Laravel操作session和cookie的教程详解
目录
- 一:操作session
- 1:session配置
- 2:设置session
- 3:获取session
- 4:删除session
- 5:重新生成 Session ID
- 二:操作cookie
- 1:设置cookie
- 2:获取cookie
- 3:删除cookie
一:操作session
1:session配置
Session 的配置文件存储在config/session.PHP中,配置参数有:
(1):配置session驱动
\'driver\' => env(\'SESSION_DRIVER\', \'file\'),//#这里表示先读取.env文件的SESSION_DRIVER参数值,如果没有使用file驱动
laravel自带的驱动
- file - 将 Session 保存在 指定文件地址 中。
- cookie - Session 保存在安全加密的 Cookie 中。
- database - Session 保存在关系型数据库中。
- memcached / Redis - Sessions 保存在其中一个快速且基于缓存的存储系统中。
- array - Sessions 保存在 php 数组中,不会被持久化。
(2):配置失效时间
\'lifetime\' => env(\'SESSION_LIFETIME\', 120),
(3):使用file驱动时session文件保存地址
\'files\' => storage_path(\'framework/sessions\'),
(4):使用redis驱动时指定 Session 使用哪个 Redis 连接
\'connection\' => null,//不修改使用默认的redis
(5):使用database驱动时将session数据存入的数据库名
\'table\' => \'sessions\',
使用database驱动时,在目录命令行执行
php artisan session:table
这时候会在database/migrations目录下生成一个创建session数据表的文件
public function up()
{
Schema::create(\'sessions\', function (Blueprint $table) {
$table->string(\'id\')->unique();
$table->unsignedBigInteger(\'user_id\')->nullable();
$table->string(\'ip_address\', 45)->nullable();
$table->text(\'user_agent\')->nullable();
$table->text(\'payload\');
$table->integer(\'last_activity\');
});
}
public function down()
{
Schema::dropIfExists(\'sessions\');
}
然后执行
php artisan migrate
这时候会在数据库中生成一个sessions表,这个表就是保存session数据的表
2:设置session
(1):使用Request实例设置session
$request->session()->put(\'key\', \'value\');//设置session
$request->session()->push(\'arr\',\'item\');//session数组数据中追加数据
(2):使用全局辅助函数session设置
session([\'key\' => \'value\']);//设置session
session()->push(\'arr\',\'item\');//session数组数据中追加数据
3:获取session
(1):使用Request实例获取session
$data = $request->session()->all();//获取所有session
$value = $request->session()->get(\'key\');//获取指定session
获取指定session,不存在设置默认值
$value = $request->session()->get(\'key\', \'default\');
$value = $request->session()->get(\'key\', function () {
return \'default\';
});
//确定 Session 中是否存在某个值,该值存在且不为 null,那么 has 方法会返回 true
if ($request->session()->has(\'key\')) {
//
}
//确定 Session 中是否存在某个值,即使其值为 null,返回 true
if ($request->session()->exists(\'key\')) {
//
}
(2):使用全局辅助函数session获取
$value = session(\'key\');
$value = session(\'key\', \'default\');
$value = session()->get(\'key\')
$value = session()->get(\'key\',\'default\')
session()->has(\'key\');
session()->exists(\'key\');
4:删除session
(1):使用Request实例删除session
//获取到session数据然后删除session
$value = $request->session()->pull(\'key\', \'default\');
//删除指定session
$request->session()->forget(\'key\');
//删除所有session
$request->session()->flush();
(2):使用全局辅助函数session删除
//删除指定session
session()->forget(\'name\');
//清空所有session
session()->flush();
5:重新生成 Session ID
(1):使用Request实例重新生成 Session ID
$request->session()->regenerate();
(2):使用全局辅助函数session重新生成 Session ID
session()->regenerate();
二:操作cookie
1:设置cookie
Cookie::queue(\'test\', \'testValue\', 10);//设置cookie,test值为testValue,设置cookie时长10分钟
Cookie::make(\'cookie_name\', \'value\', 10);//设置cookie,cookie_name值为value,设置cookie时长10分钟
Cookie::forever(\'key\',\'value\');//设置cookie,key值为value,永不过期
注意:如果使用Cookie::make()或Cookie::forever()方法设置cookie的话,渲染视图时不能直接使用:
return \\response()->view(\'index\',$data)->withCookie($cookie);
2:获取cookie
Cookie::get(\'key\');
3:删除cookie
Cookie::forget(\'key\');
到此这篇关于Laravel操作session和cookie的教程详解的文章就介绍到这了,更多相关Laravel操作session cookie内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
相关文章
- 10-05 王丽坤在与和伟的恋情中被强奸,网友称她为狗绳,王丽
- 10-05 王丽坤在与和伟的恋情中被强奸,网友称她为狗绳,王丽
- 10-05 角体育报道|揭幕战湖人险胜快船,詹姆斯与浓眉哥的搭
- 10-05 《敦刻尔克》开画在即 万达IMAX全面呈现诺兰力作
- 10-05 《冰雪奇缘》配音支持雪之女王交女朋友
- 10-05 《何所冬暖》首发贾乃亮王子文
- 10-05 贺岁档票房破10亿, 阿凡达2没能拯救影院, 平安
- 10-05 9.5分, 这神剧实在太上头
- 10-05 《张卫国的夏天》: 是一部很有魅力的电视剧, 大家
- 10-05 叫兽易小星搭档白客上演“纸洞大开”飞机大战
- 10-05 悬疑喜剧电影《奇葩诡探》终极海报发布,搞笑又诡异的
- 10-05 三里屯发现奇怪单身狗抱着女友抱枕头示威光棍节
- 10-05 金星影射韩雪,网友说法不一,韩雪:“我们也是坐过你
- 10-05 近距离感受《天龙八部》手游带来的文化魅力
- 10-05 梵象文化传媒签约百位主播,致力于打造“真正的直播”
- 10-05 豆瓣9.0,看完结局才知道这是一部魔幻剧
- 10-05 韩国艺人丁海寅、韩智敏出席新剧发布会《春夜》
- 10-05 韩智敏和丁海寅的新剧《春夜》将在Netflix上映
- 10-05 易白尘《开封奇谈》开机,古装帅哥热情满满
- 10-05 《思美人》你在想谁?原来里面有很多知识
- 最近发表