2015-12-28 61 views
0

在vanilla PHP中,我可以使用下面的代碼設置會話變量;在Laravel中設置會話變量

$_SESSION['blog'] = array(
    "email" => $_POST['email'], 
    "password" => $password, 
    "firstname" => $row ['firstName'], 
    "lastname" => $row ['lastName'], 
    "id" => $row ['id'] 
); 

我如何可以做同樣的laravel。 僅供參考我不是在談論默認會話名稱,例如PHPSESSIDlaravel_session。我的網站部分有多個會話變量,如web,blog,'careers',我將它們命名爲上面的代碼,並且能夠單獨檢查和訪問它們。因此,一個用戶可以同時擁有所有三個會話變量,但是可以用於該網站的不同部分。

回答

4

的一種方式,你可以做到這一點:

$vars = [ 
    "email" => $email, 
    "password" => $password, 
    "firstname" => $row['firstName'], 
    "lastname" => $row['lastName'], 
    "id" => $row['id'] 
]; 

session()->put('blog', $vars); 

Laravel Docs - Session

更新:要檢查會話變量的存在:

session()->has('blog'); // bool 

更新:獲得元素包含在會話變量'博客'

session('blog.id'); // using the dot notation 
+0

如何檢查會話是否存在?檢查是否存在「博客」會話 –

+0

@ moh.ABK我更新了答案,以添加對存在會話變量的檢查。 – lagbox

+0

@ moh.ABK'blog'只是會話中設置的一個會話變量,它不是它自己的SESSION或類似的東西。它也不是會話名稱,它是一個會話變量。 – lagbox

0
//Place the array in a variable 
$session_array = array(
       "email" => $_POST['email'], 
       "password" => $password, 
       "firstname" => $row ['firstName'], 
       "lastname" => $row ['lastName'], 
       "id" => $row ['id'] 
       ); 


//Place that $session_array inside the session using \Session::put('key','value') 
\Session::put('blog',$session_array); 

// To access the session value 
print_r(\Session::get('blog'));