闪存数据即 Flash Data,它的有效期是到下一个请求为止,主要用在短生命周期的变量传递,比如用户操作成功失败与否,表单验证正确与否等。在 Laravel 中,它有三种实现方式:
- 通过
Request
实例的session
方法
// store flash data
$request->session()->flash('status', 'Task was successful!');
// keep all of the flash data
$request->session()->reflash();
// keep specific flash data
$request->session()->keep(['username', 'email']);
- 通过
RedirectResponse
实例的with
方法
redirect('dashboard')->with('status', 'Profile updated!');
- 通过
View
的构造函数或其实例的with
方法
return view('greetings', ['name' => 'Victoria']);
return view('greeting')->with('name', 'Victoria');
通过方式一、二传递给视图的数据,使用 session()
辅助函数取得。
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
通过方式三传递的数据也是一种闪存数据,但它会经过 View
类处理,所以在视图文件中可直接取得。
<!-- View stored in resources/views/greeting.blade.php -->
<html>
<body>
<h1>Hello, {{ $name }}</h1>
</body>
</html>