1. 程式人生 > >Laravel中Session的使用

Laravel中Session的使用

以file為示例

1、Http request session方法
$request->session()->put('key1','value1');
echo $request->session()->get('key1');

2、session的輔助函式
session()->put('key2','val2');
echo session('key2');

3、通過session類
Session::put('key3','val33');
echo Session::get('key3');
echo Session::get('key4','我是預設val');

4、陣列方法存入session

Session::put(['key5'=>'value555']);
echo Session::get('key5');

5、往session中存入陣列
Session::push('key6','dd');
Session::push('key6','ff');
$res = Session::get('key6');
var_dump($res);

6、獲取後刪除session中的資料
Session::pull('key6');

7、取出所有的值
$res = Session::all();
var_dump($res);

8、session某個key是否存在
$res = Session::has('key2');

echo $res;

9、刪除session中的資料
Session::forget('key6');

10、刪除所有Session
Session::flush();

11、暫存。首次訪問存在,下次不存在
Session::flash('key-flash','vvv-val-flash');
echo Session::get('key-flash');


注意上面使用了訪問php類的靜態方法,用法
1、static定義
2、laravel用雙冒號使用

大致介紹下什麼是訪問php類的靜態方法
在php中,訪問類的方法/變數有兩種方法:
1. 建立物件$object = new Class(),然後使用"->"呼叫:$object->attribute/function,前提是該變數/方法可訪問。
2. 直接呼叫類方法/變數:class::attribute/function,無論是靜態/非靜態都可以。但是有前提條件:
    A. 如果是變數,需要該變數可訪問。
    B. 如果是方法,除了該方法可訪問外,還需要滿足:
        b1) 如果是靜態方法,沒有特殊條件;
        b2) 如果是非靜態方法,需要改方法中沒有使用$this,即沒有呼叫非靜態的變數/方法,當然,呼叫靜態的變數/方法沒有問題。