如何在 Laravel 中为整个应用程序设置全局会话?

Ok*_*kay 4 session global laravel

如何在 Laravel 中设置全局会话。在普通的 PHP 脚本中,$_SESSION['myvar']如果浏览器关闭或调用函数session_destroy()/ ,全局会话就会终止。unset()

我在 Laravel 中尝试过这个,但它在控制器扩展 BaseController 中不起作用:

Session::set( 'id', $user->id );
Session::get( 'id' );
Run Code Online (Sandbox Code Playgroud)

我的代码的上下文是:

// ROUTES
Route::get( '/', 'MyController@setSession' );


// CONTROLLER
class MyController extends Controller
{
    public function setSession( )
    {
       // ...
    Session::set( 'id', $user->id );
    return view('access');  
    }
}


// VIEW -> LOST Session
@if (Session::has('id') && Session::get('id') == 'hsdiwe78912hj')
    I have access!
@else
    I must stay here! <!-- I always get this -->
@endif 
Run Code Online (Sandbox Code Playgroud)

小智 5

使用

Session::put('id', $user->id );
Session::get('id' );
Session::forget('id' );
Run Code Online (Sandbox Code Playgroud)