Laravel 5自定义帮助程序无法设置会话

时间:2017-06-06 00:03:59

标签: arrays session laravel-5 laravel-5.4

我的Laravel项目中有自定义助手,类:

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

有两个注意事项:

会话变量AuthList是数字索引数组,其值为如下所示的数组:

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

"name1" => true是从我的助手以外的地方定义的。当我尝试使用我的助手方法时,我认为应该将新键添加到数组中:

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

上面的代码打印只有两个键的数组,而我期待三个:

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

换句话说,AuthList的最后一个值总是被新值替换!这有什么问题?

1 个答案:

答案 0 :(得分:0)

this我尝试使用Session::save(),它运行良好:

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