Session 如何在laravel 5.2控制器中使用会话

Session 如何在laravel 5.2控制器中使用会话,session,laravel-5.2,Session,Laravel 5.2,我登录并在会话中保留用户名,然后刷新此页面,但会话不保留值 这是我的代码: class WelcomeCtrl扩展控制器 { 公共函数gotoWelcome() { return view('welcome')->with('user',Session::get('user');//Session中没有任何内容 } 公共函数dologin(){ $username=$_POST['username']; $password=$_POST['password']; $result=“”; 如

我登录并在会话中保留用户名,然后刷新此页面,但会话不保留值

这是我的代码:

class WelcomeCtrl扩展控制器
{
公共函数gotoWelcome()
{   
return view('welcome')->with('user',Session::get('user');//Session中没有任何内容
}
公共函数dologin(){
$username=$_POST['username'];
$password=$_POST['password'];
$result=“”;
如果($username&&$password){
$result=User::getUser($username,$password);
如果($结果){
会话::set('user',$result);
return response()->json([true,Session::get('user'));//我得到了预期值,这没问题。
}
}
return response()->json([false,Session::get('user')]);
}
}

您是否已将中间件组“web”添加到路由中。在5.1中,这是所有路由的默认设置,用于会话管理和csrf验证等。

如果使用希望使用会话::请确保通过以下方式添加会话外观:

use Session;
您可以使用会话帮助器来代替它。因此,您可以使用以下代码:

session()->user()->email;
session()->get('user');
session()->flash('message', 'Hi there.');

更多信息请参见。

记住一件事。当您在Laravel5.2中使用ajax发布表单时,将出现CsrfTokenMismatch错误。为了避免这种情况,请在App/Http/Middleware/VerifyCsrfToken.php的$except数组中添加路由名称,该名称接受ajax的表单值。然后,该路由将接受带有ajax请求的表单值。

哦,我想我没有添加中间件。请记住,Laravel 5.2的最新版本现在默认在路由服务提供商中包含
web
中间件,因此,如果您正在运行一个新版本,则无需执行此操作,例如5.2.30。我添加了如下中间件:Route::group(['middleware'=>['web']],function(){Route::post('dologin','WelcomeCtrl@dologin“);路由::get('gotoWelcome',”WelcomeCtrl@gotoWelcome“);}但是当我使用jquery的$.post登录时,它会说:“VerifyCsrfToken.php第67行中的TokenMismatchException:VerifyCsrfToken.php第67行中VerifyCsrfToken->handle(对象(请求),对象(闭包))处的VerifyCsrfToken->handle(对象(请求),对象(闭包))处调用\用户\函数\管道中的数组(数组(对象(对象(VerifyCsrfToken),'handle'),数组(对象(请求),对象(闭包)))),”管道中的VerifyCsrfToken.php第124行中的Lightlight\Pipeline\{…我错过了什么吗?我把所有控制器都放在app\Http\controllers\[这里是我的所有文件控制器]中。中间件=>webs可以吗?你也可以通过ajax request@chipcoiga发送csrf令牌
Session::put('key','value');//to put the session value
Session::get('key');//to get the session value

Session::has('key');//to check the session variable exist or not