闪存数据即 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>
写入缓存```
\Session()->flash('status', 'Task was successful!');
读取缓存
echo \Session()::get('status');
//添加成功跳转
return redirect('/get-flash')->with("info","添加成功");
public function getFlash(){
return view('home');
}
//模板页调用
<?php if(\Session::has('info')): ?>
<div>
<?php echo \Session::get("info"); ?>
</div>
<?php endif; ?>
|