php - 如何在 Laravel 5 中使用会话
问题描述
我正在尝试保存一些会话变量,但返回 laravel 后不保存会话变量。我的代码中的问题在哪里?
在 web.php 中:
Route::get('/login', function(){
return view(frontend.login);
});
Route::post('/login', function(Request $request){
$control = "Some sql codes";
if($control > 0){
$user = "Some sql codes";
$request->session()->start();
$request->session()->put('user_id', $user->id);
$request->session()->save();
return view('frontend.logged_in);
}
else{
return view('frontend.index);
}
});
我知道我应该使用控制器,但这是一个临时代码,在这里应该可以正常工作(对吗?)。而当我不使用“return view('frontend.logged_in);” 它保存会话变量,但是当我尝试返回时,它不会保存会话变量。
注意:如果我为会话驱动程序选择“文件”,这些代码就可以正常工作。但是当我尝试选择 cookie 代码时不起作用..
解决方案
我相信这是因为这条线:
$request->session()->start();
您不需要手动启动会话,Laravel 会为您维护会话。
请改用以下代码:
if($control > 0){
$user = "Some sql codes";
session(['user_id'=>$user->id]);
return view('frontend.logged_in);
}
看看这是否适合你。
推荐阅读
- c# - 如何获取 ServiceBusClient 的连接字符串?
- conv-neural-network - 为什么 Netron 将 BatchNorm2d 层渲染为我模型的偏差?
- javascript - 使用任何库的 CDN 是否比在我们的本地系统或服务器中下载更合适?
- angular - package-lock.json 更改不会按预期影响构建
- c# - 通过套接字发送“chr(6)”有什么问题?
- node.js - 如何使用 nodejs 和 express 渲染带有哈巴狗的 Neo4j 集合
- jmeter - 如何在 JMeter 中对 JSR223 断言中的多个字段执行验证
- swift - 添加到创建的视图的阴影没有出现
- java - Spring不显示网页并且找不到资源
- asp.net - ASP 无法在 Web 配置中设置小数点分隔符