【问题标题】:Laravel 6 session() helper is not working?Laravel 6 session() 助手不起作用?
【发布时间】:2020-01-02 21:46:05
【问题描述】:

我有一个非常简单的课程:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function __construct()
    {
//        $this->middleware('auth');
    }

    public function home(Request $request)
    {
        echo "setting help key";
        session()->put('help', 'me');
        session(['sos' => 'me']);
        dump(session('help'));
        dump(session('sos'));
    }

    public function home2(Request $request)
    {
        dump(session('help'));
        dump(session('sos'));
    }
//...

在 home() 页面中成功转储 var,但是当我访问 home2() 页面时,它失败了。也许这与我禁用默认 middleware('auth') 有关,但我不确定(如果是这种情况,如何在不强制登录的情况下使用会话)

【问题讨论】:

    标签: php session laravel-6


    【解决方案1】:

    试试

    session(['key' => 'value']); // to store
    
    session()->get('key'); // to get the value
    
    session()->forget('key'); // to unset the session attribute
    

    另请阅读:https://laravel.com/docs/5.8/session(在右上角更改 Laravel 版本...)


    附:有时您不能只转储数据。试试var_export 或者更好的,只是调试。

    【讨论】:

    • 正如您在我在问题中添加的代码中看到的那样,我已经尝试使用文档中注释的语法进行存储,以及获取值的语法。我什至在文档中尝试了另一个不太明确的方法另外,如果一个变量的转储返回null,那么尝试用另一个函数“调试”它是没有意义的。而且,如果框架提供了使用会话的明显简单的方法,那么查看其中的内容应该不会那么困难。 PD:你试过我贴的代码吗?你有同样的问题吗,或者它工作正常?
    • 实际上,我从未听说过dump。我用var_dump。试试看会发生什么。也许您的dump 函数会破坏会话或清除所有属性。我不知道。我不是 PHP 开发人员。不过,我很熟悉。
    • 看,问题是,我也制作了 Laravel 应用程序,并且会话按预期工作。每个 Laravel 开发人员都会肯定会话有效。这不是魔术,它只是一个事实。当我以不同于我在答案中写的方式存储和获取会话属性时,我遇到了类似的问题。这就是为什么我认为你有同样的问题。
    • 因为不清楚您的代码中发生了什么(也许您从 post 重定向到 get = PGR 模式),所以很难找出您遇到的问题。如果您写var_dump(session()-&gt;get('key'); die;,您可能会看到会话中的内容。但是,不排除即使在这种情况下您也看不到任何东西。这就是为什么我更喜欢调试。
    • 当您重定向时,您还可以写:redirect('route')-&gt;with('key', 'value'); 这是您显示帖子报告的方式(从会话中自动取消设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多