Laravel 会话

Laravel 会话

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 会话

当我们点击 提交 按钮时,会出现如下所示的屏幕:

Laravel 会话

在会话中存储数据

为了将用户名称存储在会话中,我们使用会话的put()方法,如下所示:

$request->session()->put(‘user’, $request->input(‘username’));

要检索会话,我们使用会话的get()方法,如下所示:

echo $request->session()->get(‘user’);

public function store(Request request)
{request->session()->put('user', request->input('username'));
echorequest->session()->get('user'); 
 }

输出

Laravel 会话

全局会话助手

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

// 从会话键中检索数据。

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

输出

Laravel 会话

检索所有会话数据

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

$session_data = $request- >session()->all();

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

FormController.php

public function store(Request request) {
session(['user1'=>'anushka']);
session(['user2'=>'anvi']);
returnrequest->session()->all();
  }

现在,我们在web.php文件中定义路由。

Route::get(‘/show’,’FormController@store’);

输出

Laravel 会话

删除会话

现在,我们将学习如何从会话中删除数据。我们可以使用forget()方法来删除会话。

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

FormController.php

We can also delete the session by using delete() method.
{
session(['user1'=>'anushka']);
session(['user2'=>'anvi']);
request->session()->forget('user1');
returnrequest->session()->all();
    }

输出

Laravel 会话

要从会话中删除所有数据,我们将使用flush()方法。

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

让我们通过一个示例来了解flush()方法。

public function store(Request request)
{
session(['user1'=>'anushka']);
session(['user2'=>'anvi']);request->session()->flush();
return $request->session()->all();
 }

输出

Laravel 会话

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

闪存数据

当我们希望将数据存储在当前请求的会话中时,闪存数据非常有用,因为在下一个请求中闪存的数据会被删除。

让我们通过一个例子来理解闪存数据。

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

输出

Laravel 会话

当我们从代码中移除flash()函数后,代码看起来会是这样的:

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

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

Laravel 会话

注意: 如果希望在多个请求中保留闪存数据,则使用reflash()方法。 session()->reflash(); 如果希望在多个请求中保留特定数据,则使用keep()方法。 $request->session()->keep(‘message’);

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程