个性化阅读
专注于IT技术分析

Laravel会话session

本文概述

Laravel会话是一种跨多个用户请求存储用户信息的方法。它跟踪所有访问该应用程序的用户。

让我们通过示例了解会话。

  • 首先, 我们创建一个表单, 在该表单上应用会话的属性。

form.blade.php

<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');
});

输出量

Laravel会话session

当我们单击提交按钮时, 将出现以下屏幕:

Laravel会话session

在会话中存储数据

要将用户名存储在会话中, 我们使用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'); 
 }

输出量

Laravel会话session
Laravel会话session

全局会话助手

我们还可以使用全局会话函数来存储和检索会话中的值。当使用单个参数传递会话函数时, 它将返回键的值。如果通过键/值对数组传递会话, 则值将存储在会话中。

//从会话密钥中检索数据。

$ data = session(’key’);

//为会话密钥提供默认值。

$ data = session(’key’, ‘default’);

//将值存储在会话密钥中。

session([‘key’=>’value’]);

让我们通过一个例子来理解。

FormController.php

public function store(Request $request) {
session(['user'=>$request->input('username')]);
$data=session('user');
echo $data;
    }

输出量

Laravel会话session
Laravel会话session

检索所有会话数据

如果要检索所有会话数据, 则可以使用all()方法, 如下所示:

$ session_data = $ 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’);

输出量

Laravel会话session

删除会话

现在, 我们将看到如何从会话中删除数据。我们可以通过使用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();
    }

输出量

Laravel会话session

在上面的屏幕截图中, 我们可以看到未显示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();
 }

输出量

Laravel会话session

在上面的屏幕截图中, 我们观察到所有数据已从会话中删除, 并且它返回一个空数组。

Flash数据

当我们要在当前请求的会话中存储数据时, Flash数据很有用, 因为在下一个请求中将删除闪存数据。

让我们通过一个示例来了解刷新数据。

public function store(Request $request)
{
 session()->flash('post', 'post has been updated');
return $request->session()->get('post');
 }

输出量

Laravel会话session

当我们从代码中删除flash()函数时, 代码如下所示:

public function store(Request $request)
 {
    return $request->session()->get('post');
}

当我们刷新页面两次时, 然后在第二次刷新时, 会话数据将被删除。

Laravel会话session

注意:如果要保留多个请求的闪存数据, 则可以使用reflash()方法。 session()-> reflash();如果要保留几个请求的特定数据, 则可以使用keep()方法。 $ request-> session()-> keep(’message’);


赞(0)
未经允许不得转载:srcmini » Laravel会话session

评论 抢沙发

评论前必须登录!