📜  Laravel,使用 Request::old 返回视图 - PHP (1)

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

Laravel,使用 Request::old 返回视图 - PHP

在Laravel应用程序中,有时我们需要在重新加载视图时保留先前提交的表单数据。为此,我们可以使用Request::old()函数来检索上一个请求中的输入数据。

使用 Request::old() 返回视图

要使用 Request::old() 函数,我们需要首先确保 $errors 变量不为空。这通常是通过在验证表单数据时自动发送错误消息实现的。

public function store(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email',
    ]);

    // 保存数据并重定向到下一页
    return redirect('next/page');
}

在这个例子中,如果 $request 中提交的数据不符合验证规则,则会在$errors 变量中发现错误消息。我们可以像下面这样在重定向后返回相同的视图,并通过调用 Request::old() 函数来显示之前提交的字段值:

public function store(Request $request)
{
    $validatedData = $request->validate([
        'name' => 'required|max:255',
        'email' => 'required|email',
    ]);

    // 保存数据并重定向到下一页
    return redirect('next/page')->withInput();
}

public function showForm(Request $request)
{
    // 显示包含先前提交数据的视图
    return view('form')->with('errors', $request->session()->get('errors', new MessageBag))
                        ->withInput($request->session()->getInput());
}

在这个例子中,使用 withInput() 函数将先前提交的字段添加到闪存中。然后,在显示表单的视图时,我们使用 withInput() 函数调用 Request::old() 函数来显示之前提交的数据。

结论

使用 Request::old() 函数可以很容易地在 Laravel 应用程序中检索上一个请求中的输入数据,并将其返回到视图中。这对于在表单提交失败时重新加载视图时很有用。