Метод put
Метод put применяется к объекту сессии
и сохраняет переданные данные в сессионное хранилище.
Первым параметром передаётся ключ, вторым - значение.
Если ключом является массив, то данные будут объединены
с существующими значениями сессии.
Синтаксис
<?php
session()->put($key, $value);
// или
request()->session()->put($key, $value);
?>
Пример
Давайте сохраним в сессию имя пользователя:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
session()->put('username', 'JohnDoe');
echo session()->get('username');
}
}
?>
Результат выполнения кода:
"JohnDoe"
Пример
Сохраним массив данных в сессию:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function store(Request $request)
{
session()->put([
'user_id' => 1,
'user_role' => 'admin',
'is_logged_in' => true
]);
$res = session()->all();
print_r($res);
}
}
?>
Результат выполнения кода:
[
"user_id" => 1,
"user_role" => "admin",
"is_logged_in" => true
]
Пример
Обновим существующие данные в сессии с помощью массива:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function update(Request $request)
{
// Сохраняем начальные данные
session()->put('user', ['name' => 'John', 'age' => 25]);
// Обновляем только возраст
session()->put('user.age', 26);
$res = session()->get('user');
print_r($res);
}
}
?>
Результат выполнения кода:
[
"name" => "John",
"age" => 26
]
Пример
Используем метод put в маршруте с помощью фасада Session:
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Session;
Route::get('/set-session', function () {
Session::put('settings', [
'theme' => 'dark',
'language' => 'en'
]);
return 'Session data saved';
});
?>