2016-03-11 4 views
1

Я работаю над проектом laravel 5.2 и имею проблемы с сеансами. Когда я создаю сеанс, я могу получить доступ к нему только из шаблона клинка. Если я хочу получить к нему доступ из любого другого класса, это невозможно. Я использую Laravel 5.2, и все мои маршруты находятся внутри промежуточного ПО «web». Я искал всю сеть, но ни один из них не обеспечил решение моей проблемы.Laravel 5.2 Сессии не работают должным образом

Session Код создания:

<?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 

Однако, если я хочу использовать его другой класс, как показано ниже, он возвращает null:

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

Создайте сеанс как сеанс («ключ», «значение»); и использовать его как сеанс («ключ»); –

+0

любой сеанс («ключ», «значение») не работает. Я не могу использовать сеансы везде, кроме представлений. – laravel

ответ

0

Поскольку вы получаете доступ к своей переменной сеанса в конструкторе класса, возможно, ваш класс создается до того, как вы сможете установить переменные сеанса. Сначала попробуйте сначала установить свои переменные сеанса, а затем создайте новый объект этого класса.

Смежные вопросы