📌  相关文章
📜  Request::old (1)

📅  最后修改于: 2023-12-03 15:04:53.438000             🧑  作者: Mango

使用 Request::old 提取旧表单数据

在 Laravel 中, Request::old 方法可以用于提取旧表单数据。当提交的表单验证失败后,这些旧数据可以用于重新填充表单,让用户不需要重新输入。

语法
Request::old($key, $default);
  • $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 作为默认值。