如何在Laravel中设置全局会话。在普通的PHP脚本中,如果浏览器关闭或调用函数$_SESSION['myvar']
/ session_destroy()
,则unset()
等全局会话将会消失。
我在Laravel中尝试了这个,但它在控制器扩展BaseController中不起作用:
Session::set( 'id', $user->id );
Session::get( 'id' );
我的代码的上下文是:
// 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
答案 0 :(得分:2)
使用
Session::put('id', $user->id );
Session::get('id' );
Session::forget('id' );
答案 1 :(得分:0)
您似乎没有正确定义$user->id
。试试这个:
Session::set( 'id', Auth::id() );
答案 2 :(得分:0)
感谢您的提示!我不知道,Laravel不像PHP那样使用普通的$ _SESSION或session_start。
昨天的提示:必须编辑config / session.php:
'expire_on_close' => true, // expires when browser is closed