Laravel 表单验证:存在时再验证
什么是存在时再验证呢?
假设我们的模型为Blog,含有字段title和body,表示标题和内容。那么在我们创建Blog的时候,这两个字段为必填项,当我们更新Blog的时候,只要更新有请求的值就好了。如果我们共用个验证方法,具体如下:
protected function validateRequest()
{
return request()->validate([
'title' => 'required',
'body' => 'required'
]);
}
很明显我们新建Blog的时候这个验证方法没有问题,但是假设我们只更新title字段,由于提交请求的时候缺少body字段,因此我们的验证未通过。
解决方法
解决方法很简单,我们加入sometimes
验证规则就可以了。具体如下:
protected function validateRequest()
{
return request()->validate([
'title' => 'sometimes|required',
'body' => 'sometimes|required'
]);
}
这表示当我们请求中包含对应字段的时候才会做验证,否则会忽略。
666