手记

Laravel 的闪存数据(Flash Data)

闪存数据即 Flash Data,它的有效期是到下一个请求为止,主要用在短生命周期的变量传递,比如用户操作成功失败与否,表单验证正确与否等。在 Laravel 中,它有三种实现方式:

  1. 通过 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']);
  1. 通过 RedirectResponse 实例的 with 方法
redirect('dashboard')->with('status', 'Profile updated!');
  1. 通过 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>
3人推荐
随时随地看视频
慕课网APP