Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHPLaravel:如何设置或获取会话数据?_Php_Laravel_Session_Laravel 5 - Fatal编程技术网

PHPLaravel:如何设置或获取会话数据?

PHPLaravel:如何设置或获取会话数据?,php,laravel,session,laravel-5,Php,Laravel,Session,Laravel 5,我想在会话中存储一些数据,以用于某些测试目的。我也在controller中编写了会话代码。但是在console.log->resources->session中,我找不到我存储的任何值。 如果有人帮我找出我在控制器上犯的错误,请 这是我的控制器: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Department; use App\Http\Requests; use Cookie;

我想在会话中存储一些数据,以用于某些测试目的。我也在controller中编写了会话代码。但是在console.log->resources->session中,我找不到我存储的任何值。 如果有人帮我找出我在控制器上犯的错误,请

这是我的控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Department;
use App\Http\Requests;
use Cookie;
use Tracker;
use Session;

 public function postdepartmentSave(Request $request)
    {
         $this->validate($request,[
            'code' => 'required|min:2|max:7|unique:departments',          
            'name' => 'required|unique:departments',          
            ]);
            $department = new Department();           
            $department->code = $request->Input(['code']);            
            $department->name = $request->Input(['name']);
              $name=   $department->name;
         Session::put('name', $name);
        dd($name);
            $department->save();            
            return redirect('departmentSavePage');          
    }
存储数据
要存储数据,您可以使用:

Session::put('variableName',$value);
还有另一种方法,通过全局帮助器:

会话(['variableName'=>$value]);
获取数据 要获取变量,请使用:

会话::get('variableName');
您没有犯编码错误。问题是,您在服务器端会话和HTML5会话存储之间有点混淆

Chrome开发者工具上的
Resources->Session Storage
视图仅显示存储在HTML5 sessionStorage对象中的信息。这是通过客户端javascript访问的客户端会话信息,完全独立于任何类型的服务器端会话信息

例如,运行sessionStorage.setItem('key','value')Resources->Session Storage视图中

您的PHP/Laravel代码正在处理服务器端会话。此信息不会显示在任何类型的开发人员工具视图中,因为客户端工具不会访问它。默认情况下,Laravel使用基于文件的会话存储,这意味着您的会话信息存储在服务器上的文件中(在
存储/framework/sessions
中)。即使您将会话存储更改为使用cookie,会话信息也将被加密,以便客户端无法读取数据。这是出于安全目的

您可以阅读更多有关的信息。

您可以阅读更多信息。

如果该会话变量上存在值,首先需要清除它。 然后可以像这样替换新值

 session()->forget('key');
 session()->put('key', 'value');

为什么当我在控制台中看到时,
Resources->Session Storage
中没有显示任何内容?您是否尝试过进入其他位置?像在视图或控制器中。查看是否返回该值。如果不是,则确认$name是null还是not$name不是null,因为我使用dd()看到了它;尝试会话::获取('variableName');在其他地方。例如,在视图中,为了查看它是否返回值。不,我只写{{$name}来访问会话数据,但它显示
未定义变量:name