2017-06-06 6 views
0

Ich habe benutzerdefinierte Helfer, Klasse, in meinem Laravel Projekt:Laravel 5 benutzerdefinierte Helfer konnte nicht Session gesetzt

<?php 

namespace App\Http\Helpers; 

class FoxUtils { 

    public static function isAuthTo($name) 
    { 
    if (self::test($name)){ 
     \Session::push('AuthList',[$name => true]); 
     return true; 
    } 
    else{ 
     \Session::push('AuthList',[$name => false]); 
     return false; 
    } 
    } 
} 

gab zwei Hinweise:

Die Sitzungsvariable AuthList ist numerisch indiziertes Array mit Werten als Arrays wie die folgenden:

array:2 [▼ 
    0 => array:1 [▼ 
    "name1" => true 
    ] 
    1 => array:1 [▼ 
    "newName" => true 
    ] 
] 

der Wert "name1" => true aus einem anderen Ort als mein Helfer definiert. Wenn ich versuche, meine Helfer-Methode zu verwenden, respektiere ich neuen Schlüssel sollte den Array hinzugefügt werden:

\FoxUtils::isAuthTo('AnotherName'); 
dd(session('AuthList')) 

das Array über Code druckt mit nur zwei Tasten, während ich drei erwarten:

array:2 [▼ 
     0 => array:1 [▼ 
     "name1" => true 
     ] 
     1 => array:1 [▼ 
     "AnotherName" => true 
     ] 
    ] 

Mit anderen Worten: , immer der letzte Wert des AuthList wird durch neuen Wert ersetzt! Was ist das Problem hier?

Antwort

0

Von this Ich versuchte Session::save() zu bedienen und es hat gut funktioniert:

.... 
if (self::test($name)){ 
     \Session::push('AuthList',[$name => true]); 
     \Session::save(); 
     return true; 
    } 
.... 
Verwandte Themen