2016年9月5日 星期一

Laravel Session

Laravel 本身即有自己的session,非使用PHP 原生的session。 

1.
一般PHP使用規格上會有以上作法
在開頭先使用session_start() ,之後才能使用session語法

if (session_status() == PHP_SESSION_NONE) {    
     session_start();
 }

 $_SESSION['account'] = "white" ; 

 


在Laravel語法中,
如在Controller想要使用以上的$_SESSION['account'] ,
也需要在開頭class就先 session_start();

Laravel也提供了自己的session工具, Laravel的session 不等於PHP的session,
以下是Laravel 常用的session的class。

Laravel session說明:Laravel 4.2 Session說明文件

session 的設定檔配置在 app/config/session.php 中

儲存項目到 Session 中
Session::put('key', 'value');

儲存項目進 Session 陣列值中

Session::push('user.teams', 'developers');

從 Session 取回項目

$value = Session::get('key');

從 Session 取回項目,若無則回傳預設值

$value = Session::get('key', 'default');

$value = Session::get('key', function() { return 'default'; });

從 Session 取回項目,並刪除

$value = Session::pull('key', 'default');

從 Session 取出所有項目

$data = Session::all();

判斷項目在 Session 中是否存在

if (Session::has('users'))
{
    //
}

移除 Session 中指定的項目

Session::forget('key');

清空整個 Session

Session::flush();

重新產生 Session ID

Session::regenerate();