>  기사  >  PHP 프레임워크  >  Laravel의 세션 처리 방법(session)에 대한 자세한 설명

Laravel의 세션 처리 방법(session)에 대한 자세한 설명

不言
不言원래의
2018-12-27 11:29:2810891검색

웹 애플리케이션에서는 요청 전반에 걸쳐 사용자를 식별하고 각 사용자에 대한 데이터를 저장해야 합니다. 이를 위해 Laravel과 같은 프레임워크는 세션이라는 메커니즘을 제공합니다. 이 글에서는 Laravel이 세션을 처리하는 방법을 소개합니다.

Laravel의 세션 처리 방법(session)에 대한 자세한 설명

세션은 데이터(키와 값)를 저장할 수 있으며, Laravel은 config/session.php에서 설정할 수 있는 다양한 백엔드 세션을 제공합니다.

기본적으로 설정된 파일 세션은 Storage/framework/sessions/ 디렉터리의 파일에 세션을 저장합니다. 프로덕션 환경에서는 데이터베이스 세션, Redis 세션 등의 사용을 고려하지만 개발 환경에서는 기본 파일 세션을 사용해도 충분합니다.

php 중국어 웹사이트 학습 주제: php 세션 (사진, 동영상, 사례 포함)

라라벨에서 세션을 사용하는 방법

라라벨을 사용하여 세션을 운영하는 방법은 크게 두 가지가 있습니다.

하나는 요청 인스턴스를 통해 작업에 전달됩니다.

Illuminate Session Store 인스턴스를 사용하세요.

// 从会话中获取指定的数据
//在没有存在键的情况下,将返回的默认值指定为第二参数
$value = $request->session()->get('key’);
$value = $request->session()->get('key', 'default’);
$value = $request->session()->get('key', function () {
    return 'default';
});

// 获取会话中的所有数据
$data = $request->session()->all();

// 检查指定的数据是否存在于会话中
if ($request->session()->exists('key')) {
    // 存在
}
if ($request->session()->has('key')) {
    // null不存在
}

// 将数据保存到会话
$request->session()->put('key', 'value');
$request->session()->put(['key1' => 'value1', 'key2' => ‘value2']);

// 从会话取得指定的数据后,删除该数据
$value = $request->session()->pull('key', 'default’);

// 从会话中删除指定的数据
$request->session()->forget('key');

// 从会话中删除所有数据
$request->session()->flush();

또 다른 방법은 전역 도우미 함수인 session()을 사용하는 것입니다.
Illuminate Session SessionManager 인스턴스를 사용하세요.

// 从会话中获取指定的数据
// 在没有存在键的情况下,将返回的默认值指定为第二参数
$value = session('key’);
$value = session('key', 'default');
$value = session('key', function () {
    return 'default';
});
$value = session()->get(‘key');
$value = session()->get('key', 'default');
$value = session()->get('key', function () {
    return 'default';
});

// 取得会话中的全部数据
$data = session()->all();

// 检查指定的数据是否存在于会话中
if (session()->exists('key')) {
    // 存在
}
if (session()->has('key')) {
    // null不存在
}

// 保存数据到会话
session(['key1' => 'value1', 'key2' => ‘value2']);
session()->put(['key1' => 'value1', 'key2' => 'value2']);

// 从会话取得指定的数据后,删除该数据
$value = session()->pull('key', 'default’);

// 从会话中删除指定的数据
session()->forget('key');

// 从会话中删除所有数据
session()->flush();

다음을 살펴보겠습니다. Laravel에서 세션을 사용하는 구체적인 예

아주 간단한 예

우리는 다음 경로를 정의합니다.

routes/web.php

Route::get('/put-data', function () {
    session()->put(['email' => 'user@example.com']);
    return session()->get('email');
});

Route::get(‘/list-data', function () {
    return session()->all();
});

먼저 브라우저에서 /put-data에 접속하면 첫 번째 경로가 실행되어 해당 세션에 데이터가 저장되어 있는 것을 확인할 수 있습니다.

user@example.com

다음으로 브라우저에서 /list-data에 접속하면 두 번째 경로가 실행되어 이전에 저장한 데이터가 유지되었는지 확인할 수 있다.

{"email":"user@example.com","_previous":{"url":"http:\/\/localhost:8000\/put-data"},"_flash":{"old":[],"new":[]},"_token":"UYcsteOQAj58e9Aay5uNc3V4F0fSpi9VfEBlKhTZ"}

그 밖에도 물론 다른 데이터도 있지만 이것들은 자동으로 저장되는 데이터이고, Laravel 자체도 세션을 사용합니다.

위 내용은 Laravel의 세션 처리 방법(session)에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.