本文概述
- 在会话中存储数据
- 全局会话助手
- 检索所有会话数据
- 删除会话
- Flash数据
让我们通过示例了解会话。
- 首先, 我们创建一个表单, 在该表单上应用会话的属性。
<
Html>
<
Head>
<
title>
File Upload <
/title>
<
/Head>
<
Body>
<
form method="Post" action="{{route('forms.store')}}">
@csrf
<
div>
<
label for="Name">
Name<
/label>
<
input type="text" name="username">
<
/div>
<
br/>
<
div>
<
button type="submit">
Submit <
/button>
<
/div>
<
/form>
<
/body>
- 现在, 我们在FormController.php文件中定义store()函数。
public function store(Request $request)
{
print_r($request->
input('username'));
}
- 最后, 我们在web.php中定义路由。
Route::get('/session', function()
{
return view('form');
});
输出量
文章图片
当我们单击提交按钮时, 将出现以下屏幕:
文章图片
在会话中存储数据 要将用户名存储在会话中, 我们使用session的put()方法, 如下所示:
$ request-> session()-> put(’ user’ , $ request-> input(’ username’ ));
要检索会话, 我们使用session的get()方法, 如下所示:
echo $ request-> session()-> get(’ user’ );
public function store(Request $request)
{
$request->
session()->
put('user', $request->
input('username'));
echo $request->
session()->
get('user');
}
输出量
文章图片
文章图片
全局会话助手 我们还可以使用全局会话函数来存储和检索会话中的值。当使用单个参数传递会话函数时, 它将返回键的值。如果通过键/值对数组传递会话, 则值将存储在会话中。
//从会话密钥中检索数据。
$ data = http://www.srcmini.com/session(’ key’ );
//为会话密钥提供默认值。
$ data = http://www.srcmini.com/session(’ key’ , ‘ default’ );
//将值存储在会话密钥中。
session([‘ key’ => ’ value’ ]);
让我们通过一个例子来理解。
FormController.php
public function store(Request $request) {
session(['user'=>
$request->
input('username')]);
$data=http://www.srcmini.com/session('user');
echo $data;
}
输出量
文章图片
文章图片
检索所有会话数据 如果要检索所有会话数据, 则可以使用all()方法, 如下所示:
$ session_data = http://www.srcmini.com/$ request-> session()-> all();
让我们通过一个例子来理解:
FormController.php
public function store(Request $request) {
session(['user1'=>
'anushka']);
session(['user2'=>
'anvi']);
return $request->
session()->
all();
}
现在, 我们在web.php文件中定义路由。
路线:: get(’ / show’ , ‘ FormController @ store’ );
输出量
文章图片
删除会话 现在, 我们将看到如何从会话中删除数据。我们可以通过使用cancel()方法删除会话。
让我们通过一个例子来理解。
FormController.php
We can also delete the session by using delete() method.
{
session(['user1'=>
'anushka']);
session(['user2'=>
'anvi']);
$request->
session()->
forget('user1');
return $request->
session()->
all();
}
输出量
文章图片
在上面的屏幕截图中, 我们可以看到未显示user1, 这意味着该user1已从会话中删除。
要从会话中删除所有数据, 我们将使用flush()方法。
$ request-> session()-> flush();
让我们通过一个例子来理解flush()方法。
public function store(Request $request)
{
session(['user1'=>
'anushka']);
session(['user2'=>
'anvi']);
$request->
session()->
flush();
return $request->
session()->
all();
}
输出量
文章图片
在上面的屏幕截图中, 我们观察到所有数据已从会话中删除, 并且它返回一个空数组。
Flash数据 当我们要在当前请求的会话中存储数据时, Flash数据很有用, 因为在下一个请求中将删除闪存数据。
让我们通过一个示例来了解刷新数据。
public function store(Request $request)
{
session()->
flash('post', 'post has been updated');
return $request->
session()->
get('post');
}
输出量
文章图片
当我们从代码中删除flash()函数时, 代码如下所示:
public function store(Request $request)
{
return $request->
session()->
get('post');
}
【Laravel会话session】当我们刷新页面两次时, 然后在第二次刷新时, 会话数据将被删除。
文章图片
注意:如果要保留多个请求的闪存数据, 则可以使用reflash()方法。 session()-> reflash(); 如果要保留几个请求的特定数据, 则可以使用keep()方法。 $ request-> session()-> keep(’ message’ );
推荐阅读
- Laravel模板继承
- Laravel路由控制器
- Laravel路由组
- Laravel资源控制器
- Laravel迁移结构
- Laravel将数据传递到视图
- Laravel迁移命令
- Laravel中间件
- Laravel Eloquent使用详细实例