Chúng là một cách dễ dàng để duy trì dữ liệu cho người dùng hiện tại. Hướng dẫn này sẽ cung cấp cho bạn kiến thức cơ bản về cách làm việc với các phiên trong Laravel.
Trong Laravel, session là một cách để lưu trữ thông tin, để xử lý chính xác các yêu cầu của người dùng. Khi người dùng khởi động ứng dụng Laravel, phiên sẽ tự động bắt đầu cho người dùng đó. Dữ liệu phiên được lưu trữ trên máy chủ và một cookie nhỏ có số nhận dạng duy nhất được gửi đến trình duyệt của người dùng để xác định phiên.
Bạn có thể sử dụng phiên để lưu trữ dữ liệu mà bạn muốn sử dụng trên nhiều trang hoặc yêu cầu. Ví dụ: bạn có thể sử dụng phiên để xác thực người dùng hoặc lưu trữ thông tin khác mà bạn muốn sử dụng trong phiên trên ứng dụng của mình.
Để sử dụng các phiên trong Laravel, trước tiên bạn phải kích hoạt chúng trong tệp config/session.php
của cấu hình. Trong tệp này, có thể đặt các tham số cấu hình liên quan đến phiên. Chẳng hạn như thời lượng của phiên, trình điều khiển sẽ sử dụng để lưu trữ dữ liệu phiên và vị trí lưu trữ dữ liệu phiên.
Dưới đây là một ví dụ về một tập tin sessions.php
với thời lượng phiên 120 giây, sử dụng các tệp được lưu trữ trong thư mục framework/sessions
:
<?php
use Illuminate\Support\Str;
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => env('SESSION_CONNECTION', null),
'table' => 'sessions',
'store' => env('SESSION_STORE', null),
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE'),
'http_only' => true,
'same_site' => 'lax',
];
Bạn cũng có thể định cấu hình phiên bằng các biến môi trường trong tệp .env
. Ví dụ: để sử dụng trình điều khiển phiên cơ sở dữ liệu và lưu trữ dữ liệu phiên trong bảng phiên, với DB kiểu MySQL, bạn có thể đặt các biến môi trường sau:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Có ba cách để làm việc với dữ liệu phiên trong Laravel:
helper
của global session
;Request instance
. Trong tất cả các trường hợp này, dữ liệu bạn lưu trữ trong phiên sẽ có sẵn trong các yêu cầu tiếp theo được thực hiện bởi cùng một người dùng cho đến khi phiên hết hạn hoặc bị hủy theo cách thủ công.
Trong Laravel, sử dụng chức năng Global Session Helper
đó là một cách thuận tiện để truy cập các dịch vụ phiên do khung cung cấp. Nó cho phép bạn lưu trữ và truy xuất dữ liệu từ phiên trong ứng dụng của bạn. Đây là một ví dụ về cách sử dụng session helper
:
// Store data in the session
session(['key' => 'value']);
// Retrieve data from the session
$value = session('key');
// Remove data from the session
session()->forget('key');
// Clearing the Entire Session
session()->flush();
Bạn cũng có thể chuyển một giá trị trướcdefinite làm đối số thứ hai cho hàm session
, sẽ được trả về nếu không tìm thấy khóa đã chỉ định trong phiên:
$value = session('key', 'default');
Session Request
Trong Laravel, một phiên bản yêu cầu phiên đề cập đến một đối tượng đại diện cho một yêu cầu HTTP và chứa thông tin về yêu cầu, chẳng hạn như phương thức yêu cầu (GET, POST, PUT, v.v.), URL yêu cầu, tiêu đề của yêu cầu và nội dung yêu cầu . Nó cũng chứa các phương pháp khác nhau có thể được sử dụng để truy xuất và thao tác thông tin này.
Thông thường, bạn truy cập phiên bản của Session Request
thông qua biến $request
trong một ứng dụng Laravel. Ví dụ: một phiên có thể được truy cập thông qua một phiên bản yêu cầu bằng cách sử dụng hàm trợ giúp session()
.
use Illuminate\Http\Request;
class ExampleController extends Controller
{
public function example(Request $request)
{
// Store data in the session using the put function
$request->session()->put('key', 'value');
// Retrieve data from the session using the get function
$value = $request->session()->get('key');
// Check if a value exists in the session using the has function:
if ($request->session()->has('key')) {
// The key exists in the session.
}
// To determine if a value exists in the session, even if its value is null:
if ($request->session()->exists('users')) {
// The value exists in the session.
}
// Remove data from the session using the forget function
$request->session()->forget('key');
}
}
Trong ví dụ này, biến $request
nó là một thể hiện của lớp Illuminate\Http\Request
, đại diện cho yêu cầu HTTP hiện tại. Chức năng session
thể hiện yêu cầu trả về một thể hiện của lớp Illuminate\Session\Store
, cung cấp các chức năng khác nhau để làm việc với phiên.
Ercole Palmeri
Một ca phẫu thuật tạo hình mắt bằng cách sử dụng trình xem thương mại Apple Vision Pro đã được thực hiện tại Phòng khám đa khoa Catania…
Phát triển kỹ năng vận động tinh thông qua tô màu giúp trẻ chuẩn bị cho những kỹ năng phức tạp hơn như viết. Để tô màu…
Ngành hải quân là một cường quốc kinh tế toàn cầu thực sự, đang hướng tới thị trường 150 tỷ...
Thứ Hai tuần trước, Financial Times đã công bố một thỏa thuận với OpenAI. FT cấp phép cho hoạt động báo chí đẳng cấp thế giới…