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

2022-08-30 23:58:22

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

这是我的控制器:

<?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');          
    }

答案 1

存储数据

要存储数据,您可以使用:

Session::put('variableName', $value);

还有另一种方式,通过全局助手:

session(['variableName' => $value]);

获取数据

要获取该变量,您可以使用:

Session::get('variableName');

答案 2

你没有犯编码错误。问题是你在服务器端会话和HTML5的sessionStorage之间有点困惑。

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

例如,在 javascript 控制台中运行,您将看到数据显示在视图中。sessionStorage.setItem('key', 'value');Resources->Session Storage

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

您可以在此处阅读有关Laravel会议的更多信息。
你可以在这里阅读更多关于HTML5 sessionStorage的信息


推荐