Метод pull
Метод pull класса Session предназначен для извлечения данных из сессии с их одновременным удалением. Первым параметром передаётся ключ, по которому нужно получить значение. Метод возвращает значение, хранившееся по указанному ключу, и удаляет его из сессии. Если ключ не найден, возвращается null или значение по умолчанию, переданное вторым параметром.
Синтаксис
<?php
session()->pull($key, $default);
?>
Пример
Давайте поместим значение в сессию с помощью метода put, а затем извлечём его с помощью pull:
<?php
use Illuminate\Support\Facades\Session;
Session::put('user', 'John Doe');
$res = Session::pull('user');
echo $res;
?>
Результат выполнения кода:
"John Doe"
После выполнения метода значение по ключу 'user' будет удалено из сессии.
Пример
Используем метод pull с передачей значения по умолчанию на случай, если ключ отсутствует:
<?php
use Illuminate\Support\Facades\Session;
$res = Session::pull('non_existent_key', 'Guest');
echo $res;
?>
Результат выполнения кода:
"Guest"
Пример
Рассмотрим использование метода pull в контроллере для извлечения данных пользователя из сессии:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
class UserController extends Controller
{
public function show(Request $request)
{
Session::put('user_id', 1);
Session::put('user_name', 'Alice');
$userId = Session::pull('user_id');
$userName = Session::pull('user_name');
echo "User ID: " . $userId . ", User Name: " . $userName;
}
}
?>
Результат выполнения кода:
"User ID: 1, User Name: Alice"
После вызова метода оба ключа будут удалены из сессии.
Пример
Используем метод pull для извлечения массива данных и его последующей обработки:
<?php
use Illuminate\Support\Facades\Session;
Session::put('items', ['a', 'b', 'c', 'd', 'e']);
$items = Session::pull('items');
foreach ($items as $item) {
echo $item . " ";
}
?>
Результат выполнения кода:
"a b c d e"
Массив будет извлечён из сессии, и ключ 'items' будет удалён.