📜  laravel 保留旧值 - PHP (1)

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

Laravel 保留旧值 - PHP

在 Laravel 中,我们可以使用 old 函数来保留之前表单提交时的输入值,并在表单验证失败后自动回显。

语法
old($key, $default = null)

其中,$key 表示字段名称,$default 表示默认值。如果 $key 对应的输入值不存在,则返回默认值。

用法
在控制器中使用

在表单提交时,我们通常会在控制器中执行表单验证。如果验证失败,我们可以使用 old 函数来保存之前输入的值,并将其传递到视图中以便回显。

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

    // Store user to database...

    return redirect('/')->with('success', 'User created successfully.');
}

在上面的代码中,如果验证失败,则可以使用 old 函数来获取之前输入的值:

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

    // Store user to database...

    return redirect('/')
        ->with('success', 'User created successfully.')
        ->withInput();
}

withInput 方法中,将会保存之前输入的值,以便在视图中回显:

<input type="text" name="name" value="{{ old('name') }}">
<input type="email" name="email" value="{{ old('email') }}">
<input type="password" name="password" value="{{ old('password') }}">
在视图中使用

如果表单提交失败,我们可以在视图中使用 old 函数来回显之前输入的值。例如,为了回显输入的用户名,我们可以这样写:

<input type="text" name="name" value="{{ old('name') }}">
总结

old 函数是 Laravel 提供的便捷的输入值回显方式。使用它,我们可以保留之前输入的值,以便在表单验证失败后自动回显。在控制器中使用 withInput 方法,可以将之前输入的值保存到重定向中,以便在视图中回显。