首頁 > php框架 > Laravel > laravel中的session的CURD操作

laravel中的session的CURD操作

齐天大圣
發布: 2020-12-17 13:46:13
原創
1243 人瀏覽過

HTTP協定是無狀態的,所以有了cookie和session技術,它們之間配合來維護一個狀態。在laravel中設定及取得session是非常方便的。下面,我們就一起來看看吧。

設定

session是儲存在伺服器上的,預設的session是儲存在伺服器上的檔案中。但該方法的效率不高,目前流行的是將session保存在redis或memcached第三方資料庫中。這些nosql的讀寫效率非常高,而且更容易管理。下面,看laravel是如何設定session的

laravel的session設定檔是在config/session.php中。此設定檔中可以配置session儲存的方式,有效時間等。

需要配置儲存方式為redis,則需要修改driver設定項,將其改為redis即可。除此之外,還支援本地儲存(預設)、關係型資料庫儲存等。

取得session值

首先來看如何取得session值,透過回應實例request的session方法即可取得,示範程式碼如下:

$request->session()->get('key');
登入後複製

get這個方法的第二個參數是用來設定預設值的,如果麼有取得到對應的session值,則傳回預設值,示範程式碼如下:

$request->session()->get('key', 'default');
登入後複製

第二個參數也可以是一個回呼函數,透過回呼函數傳回一個預設值

$request->session()->get('key', function ()
{
      return 'default';
 });
登入後複製

除了上述的方法外,還可以透過全域的session函數來獲取,它們的用法是一致的。

也可以透過all方法來一次取得所有的session值,該方法傳回一個陣列:

$request->session()->all();
登入後複製

laravel也提供了一個方法來方便的判斷該session是否存在,使用has方法

if ($request->session()->has('key')) {}
登入後複製

另外還有一個exists方法,它與has的差別是has必須存在且不為空才回真,而exists只要存在就回傳真。

設定sesson值

設定session可以透過兩種方法,以下是示範程式碼:

$request->session()->put('key', 'val');
session(['key1' => 'val1', 'key2' => 'val2']);
登入後複製

刪除session值

可以透過forget方法來刪除指定的session,也可以透過flush來刪除所以session。以下是示範程式碼:

$request->session()->forget('k1');
$request->session()->forget(['k1', 'k2', 'k3']);
$request->session()->flush();
登入後複製

相關推薦:《laravel教學

以上是laravel中的session的CURD操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板