Php 从会话中删除LAVEL会话值

Php 从会话中删除LAVEL会话值,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在使用服务提供者在模型中创建会话,但当我尝试在另一个页面上获取会话值时,它不会显示任何内容 服务提供商(Projectfunction.php) 模型(Config.php) 从控制器中,我使用project\u function()->test1()或project\u function()->test2() 当我分别调用这两个函数时,test2()将不会显示任何会话值,但如果我从test1()调用test2(),它将显示会话值。我不知道为什么。是否有仅从控制器创建会话的规则?因为我试着用

我正在使用服务提供者在模型中创建会话,但当我尝试在另一个页面上获取会话值时,它不会显示任何内容

服务提供商(Projectfunction.php)

模型(Config.php)

从控制器中,我使用
project\u function()->test1()
project\u function()->test2()

当我分别调用这两个函数时,
test2()
将不会显示任何会话值,但如果我从
test1()
调用
test2()
,它将显示会话值。我不知道为什么。是否有仅从控制器创建会话的规则?因为我试着用几个控制器来做,效果很好。(我在不同的控制器中创建了单独的显示会话代码,在单个控制器中创建了单个会话代码,它工作正常,那么为什么它在模型和服务提供商中不工作?

如果从test1()调用test2(),则会话()具有
email
值,因为它是由test1()中的put('email',abcd123')方法生成的,但只要从test2()访问,它就没有
email

像这样尝试(但我没有在我的环境中接受测试)


我希望这对您有所帮助:)

您似乎无法访问服务提供商中的会话。检查以下链接。


为此,您必须创建一个中间件。希望这能有所帮助。

下面的代码创建了一个会话并对我有用

\Session::put('email', 'abcd123@abc.com');
\Session::save();

您使用的是什么会话驱动程序?文件。我还检查了位置,但当我调用模型函数时,没有创建会话文件,但当我从控制器尝试时,有会话文件,所以我不知道它为什么不工作;使用全局助手,会话(['email'=>'abcd123']);并使用会话(“电子邮件”)检索该值。检查是否有不同的结果。不,我不需要从
createSession
调用
viewSession\u v1
。这是识别问题的唯一测试用例。
public function createSession(){
    session()->put('email', 'abcd123');
}
public function viewSession_v1(){
    $data = session()->get('email');
    return $data;
}
public function createSession(){
    $test = session()->put('email', 'abcd123');
    return self::viewsession_v1($test);
}
public function viewSession_v1($test){
    $data = $test->get('email');
    return $data;
}
\Session::put('email', 'abcd123@abc.com');
\Session::save();