2016-03-11 256 views
1

我正在开发laravel 5.2项目,并遇到会话问题。创建会话时,我只能从刀片模板访问它。如果我想从任何其他类访问它,这是不可能的。我使用Laravel 5.2,我的所有路由都在'网络'中间件内。我搜索了整个网络,但没有一个能够解决我的问题。Laravel 5.2会话无法正常工作

会话创建代码:

<?php namespace App\Lib\Services; 

$this->request->session()->put('errors', $this->errors);` 
redirect()->back()->send(); 

当我像下面的查看测试会话,它的工作原理(给出了预期的数据):

@extends('themes.backend.metronic.main') 

@section('pageContent') 
{{ dd(session ('errors')) }} 
@endsection 

但是,如果我想使用它另一类如下,它返回空:

namespace App\Lib\Themes\Errors; 

function __construct($specs) 
    { 
     parent::__construct($specs); 
     $this->setData(); 
     dd(session('errors')); // this returns null value 
     $this->setErrorMsg(); 
    } 

有人可以帮我解决这个问题吗?

+0

当你的类被构造时,会话数据是空的,所以你就会得到null。你有没有试过从任何其他功能访问它? –

+0

创建你的会话像会话('key','value');并使用它像会话('键'); –

+0

或者会话('key','value')方法不起作用。除了视图以外,我无法使用任何会话。 – laravel

回答

0

由于您正在访问类的构造函数中的会话变量,因此您可以在创建类之前设置会话变量。尝试先设置会话变量,然后创建该类的新对象。