📅  最后修改于: 2023-12-03 15:02:38.709000             🧑  作者: Mango
在 Laravel 中,重定向是一个常见的操作,它可以让用户在不同的页面间进行切换。但是,有时候我们需要在重定向时同时返回错误信息和用户输入的数据。本文将介绍如何在 Laravel 中实现这一功能。
在 Laravel 中,我们可以使用 withErrors()
方法将错误信息存储到 Session 中,并在重定向时将其带回到前端页面中。
以下是一个示例,展示如何在表单验证失败时返回错误信息:
// 在 Controller 中
public function store(Request $request)
{
$rules = [
'name' => 'required',
'email' => 'required|email',
];
$messages = [
'name.required' => '姓名不能为空',
'email.required' => '邮箱不能为空',
'email.email' => '请输入有效的邮箱地址',
];
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator)
->withInput();
}
// 存储数据到数据库中
}
在上面的例子中,我们使用了 Validator 对数据进行验证,如果验证失败,则将错误信息存储到 Session 中,然后使用 withInput()
方法将用户输入的数据一同带回前端页面中。
接下来,在前端页面中可以使用以下代码展示错误信息:
@if ($errors->any())
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
上面的代码将会展示所有的错误信息。
在 Laravel 中,我们也可以使用 withInput()
方法一同将用户输入的数据带回前端页面中。
以下是一个示例,展示如何在表单验证失败时返回用户输入的数据:
// 在 Controller 中
public function store(Request $request)
{
$rules = [
'name' => 'required',
'email' => 'required|email',
];
$messages = [
'name.required' => '姓名不能为空',
'email.required' => '邮箱不能为空',
'email.email' => '请输入有效的邮箱地址',
];
$validator = Validator::make($request->all(), $rules, $messages);
if ($validator->fails()) {
return redirect()
->back()
->withErrors($validator)
->withInput();
}
// 存储数据到数据库中
}
在上面的例子中,我们使用了 withInput()
方法一同将用户输入的数据带回前端页面中。
接下来,在前端页面中可以使用以下代码展示用户输入的数据:
<input name="name" value="{{ old('name') }}" type="text">
<input name="email" value="{{ old('email') }}" type="email">
上面的代码将会展示用户输入的数据。
在 Laravel 中,重定向是一个常见的操作,我们可以使用 withErrors()
方法将错误信息存储到 Session 中,并使用 withInput()
方法将用户输入的数据带回前端页面中,从而在重定向时返回错误信息和用户输入的数据。