Laravel 会话管理:存入会话数据 1 个改进

问题

在 Laravel 中,如何向会话写入数据?

回答

想要向会话写入数据,可以先调用 $request 实例的 session 方法返回 \Illuminate\Session\Store 实例,然后链式调用该实例的 put 方法向会话写入数据:

// 通过请求实例...
$request->session()->put('key', 'value');
// 或
$request->session()->put(['key', 'value']);

也可以使用全局辅助函数 session,如果给该函数提供的是一个关联数组,它将执行写入操作:

session(['key' => 'value']);

如果要向一个会话数组添加新值,可以使用 push 方法。假设会话中 user.teams 是包含团队名称的数组,可以这样将一个新的值加入到数组中:

$request->session()->push('user.teams', 'developers');

如果想在会话中保存数据用于下一次请求,可以使用 flash 方法。使用这个方法保存在会话中的数据,只会保留到下一个 HTTP 请求到来之前,然后就会被删除(闪存数据)。这对短期的状态消息是适用的:

$request->session()->flash('status', 'Task was successful!');

如果需要保留闪存数据给更多请求,可以使用 reflash 方法,这会将所有的闪存数据保留给其他请求。如果只想保留特定的闪存数据,则可以使用 keep 方法,它接受一个包含欲保留闪存数据键名的数组:

$request->session()->reflash();

$request->session()->keep(['username', 'email']);

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!