【问题标题】:Laravel session value is not showing in app/Hlepers/common_helpers.php and the base controllerLaravel 会话值未显示在 app/Hlepers/common_helpers.php 和基本控制器中
【发布时间】:2016-12-05 05:32:04
【问题描述】:

我是 laravel 的初学者,在 Laravel 5.3 中开发应用程序。我在app/Helpers 目录中创建了一个common_helper.php 文件并创建了一个service provider 并将其添加到config/app.php 中。

我试图从我的控制器调用位于common helper 中的函数。它将转到帮助文件。但是没有在控制器中提供的通用助手中显示会话值。

我已经在 laravel 5.2 中做了一些事情。但是同样的结构可以完美运行

可能是什么问题?我想不通。请帮忙

common_helper.php

<?php


use App\User;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Route;
use App\Http\Requests;
use App\Menu_master;
use Illuminate\Support\Facades\Input;
use Intervention\Image\Facades\Image as Image;

function check_session()
{
    echo Session::get('email');die;
    if (Session::has('email') && Session::has('login') && Session::has('role_id') && Session::has('role_name'))
    {
        if (empty(Session::get('email')) || Session::get('login') !== 'true' || empty(Session::get('role_id')) || empty(Session::get('role_name')))
        {
            Session::flush();
            Redirect::to('/')->send();
            exit(0);
        }
    }
    else
    {
        Session::flush();
        Redirect::to('/')->send();
        exit(0);
    }
}

我正在从控制器construct 函数调用check_session(),如下所示

public function __construct(){
    check_session();
}

【问题讨论】:

  • 问题您是否成功设置了会话?
  • @NewbeeDev,是的,我在控制器方法中得到了它。但不在主控制器函数的构造函数中
  • 我可以看看你是如何推送会话的
  • 您是否尝试打印出您的 Session 数组?
  • 是的。它在内部方法中打印。但不在构造函数中。

标签: php laravel session laravel-5.3


【解决方案1】:

您应该首先使用会话的命名空间。

use Session;
//or
use Illuminate\Support\Facades\Session;

【讨论】:

  • 我也用过。会话在构造中仍然不可用。我认为这与L5.3有关。他们不支持构建中的会话。 L5.2 中的相同代码正在运行
  • 我创建了一个新的 laravel5.3 项目并对其进行测试。 session 可以在构造函数中访问。 public function __construct () { dd(Session::get('email')); } 给了我正确的答案。新建另一个项目并进行测试?
  • 更新你的 laravel 怎么样?
  • @forehalo,感谢您的尝试。能否提供完整的控制器代码?
猜你喜欢
  • 2016-06-25
  • 2017-05-23
  • 2017-03-24
  • 2019-09-20
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
相关资源
最近更新 更多