Laravel 请求:获取上一次的输入数据
问题
在 Laravel 中,有办法在控制器中获取前一次请求的输入数据么?例如一个常见的操作是用户提交了登录表单,而密码写错了,我们在返回登录表单页面时,会默认填入上次填写的用户名(下图邮箱),这样用户就不需要输入两次用户名了:
回答
要获取前一次请求传输的数据,可以使用 Illuminate\Http\Request
实例的 old
方法。 该方法将从会话( session )中拉取之前传输的值:
$username = $request->old('username');
Laravel 还提供了一个全局辅助函数 old
,如果要在 Blade 模板中 显示旧数据, old
辅助函数会更方便。如果给定字段的旧值不存在,将返回 null
:
<input type="text" name="username" value="{{ old('username') }}">
这个特性对于在出错情况下恢复原数据是不是非常有用?