📅  最后修改于: 2023-12-03 15:04:53.438000             🧑  作者: Mango
在 Laravel 中, Request::old 方法可以用于提取旧表单数据。当提交的表单验证失败后,这些旧数据可以用于重新填充表单,让用户不需要重新输入。
Request::old($key, $default);
// 控制器中处理提交的表单数据
public function update(Request $request, $id)
{
$validatedData = $request->validate([
'title' => 'required|max:255',
'content' => 'required',
]);
// 更新数据
return redirect('/posts/' . $id . '/edit')
->with('success', 'Post updated successfully.')
->withInput(); // 将新数据保存为旧数据
}
// 视图中填充表单
<input type="text" class="form-control @error('title') is-invalid @enderror" name="title" value="{{ Request::old('title', $post->title) }}" required>
@error('title')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
以上代码演示了如何在控制器中通过 withInput 方法将新数据保存为旧数据,并在视图中通过 Request::old 方法提取旧数据。 这允许在表单字段验证失败时,将旧数据填充回表单字段,让用户不需要重新输入。
在视图中,我们使用 Request::old('title', $post->title) 来提取 title 字段的旧数据。 如果没有提取到旧数据,则使用 $post->title 作为默认值。