📅  最后修改于: 2023-12-03 15:23:28.245000             🧑  作者: Mango
在 Laravel 应用程序中,处理表单数据时总会遇到各种错误。在这些情况下,Laravel 提供了一种简单的方法,通过在表单字段下面显示错误消息来通知用户有哪些错误。在本文中,我们将讨论如何在 Laravel 应用程序中实现此功能。
在传递数据到视图之前,您需要先进行验证。可以在控制器中使用 Laravel 提供的验证器对表单数据进行验证。以下是一个示例:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|unique:categories|max:255',
'description' => 'required',
]);
// ...
}
在上面的代码段中,我们使用了 validate()
方法来验证请求中的数据。如果验证失败,将抛出 Illuminate\Validation\ValidationException
异常,并将错误消息传递给视图。否则,将返回已验证的数据。
一旦验证失败,您可以使用 withErrors()
方法将错误消息传递到视图。使用此方法,您可以将错误消息传递到视图中的输入字段下面。
以下是一个示例:
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|unique:categories|max:255',
'description' => 'required',
]);
// ...
return redirect('categories/create')
->withErrors($validator)
->withInput();
}
在上面的代码中,我们在重定向时使用 withErrors()
方法将 $validator
对象传递到视图中。此方法的第二个参数可以让您在重定向之前将用户输入的值存储在会话中。
接下来在视图中显示错误消息。您可以使用 @error
Blade 指令在视图中显示错误消息。
以下是一个示例:
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control @error('name') is-invalid @enderror" id="name" value="{{ old('name') }}" required>
@error('name')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
在上面的代码中,我们使用 @error('name')
指令检查 name
字段是否有错误。如果有,我们将输入字段的 is-invalid
类添加到 div
元素中,并将错误消息显示在 div
元素中。如果没有错误,我们不会添加 is-invalid
类,并且不会显示任何错误消息。
使用 Laravel,在表单字段下面显示错误消息非常简单。通过 validate()
方法验证表单数据,然后使用 withErrors()
和 @error
Blade 指令在视图中显示错误消息。