Laravel 8 编写验证逻辑
现在我们开始在 store
方法中编写用来验证新的博客文章的逻辑代码。为此,我们将使用 Illuminate\Http\Request
类提供的 validate
方法。如果验证通过,你的代码会继续正常运行。如果验证失败,则会抛出异常,并自动将对应的错误响应返回给用户。 在传统 HTTP 请求下,会生成一个重定向响应, 而对于 AJAX 请求则会发送 JSON 响应。
为了深入理解 validate
方法,让我们接着回到 store
方法中:
/**
* 存储一篇新的博客文章
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// 博客文章验证通过...
}
如你所见,我们将所需的验证规则传递至 validate
方法中。另外再提醒一次,如果验证失败,会自动生成一个对应的响应。如果验证通过,那我们的控制器会继续正常运行。
或者,验证规则可以使用数组而不是单个 |
分隔的字符串:
$validatedData = $request->validate([
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]);
你可以使用 validateWithBag
方法来验证请求,并将所有错误信息储存在一个 命名错误信息包 中:
$validatedData = $request->validateWithBag('post', [
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]);