如果密码字段存在,我希望验证它。我想允许某人编辑用户,他们可能希望更改用户的密码,也可能不希望更改。所以我认为可以使用Laravel的验证规则来实现这一点,具体地说是使用“sometimes”规则。我的规则如下:
$this->validate($request, [
'password' => 'sometimes|required|min:8',
]);
这只是为了示例而简化的内容,通常对于其他字段会有其他规则,并且密码会有更严格的规定。我希望只有当传递的数据中存在密码字段时才应用min:8规则,但如果我将密码字段留空,则会出现验证错误,提示需要填写密码字段。
我不确定在文档中哪里理解有误。如果表单输入为空,我是否需要在验证之前手动删除密码字段?
$data = $request->all();
if ('' === $data['password']) {
unset($data['password'])
}
...然后将数组传递到验证器中。我认为这很有道理,但我需要确认我理解得正确。谢谢提前。