我正在尝试验证密码字段,只有它存在.我想允许某人编辑用户,他们可能想要也可能不想更改用户密码.所以我认为我可以使用Laravels验证规则,特别是“有时”规则.我有这套规则:
$this->validate($request,[ 'password' => 'sometimes|required|min:8',]);
这是简化的示例,通常会有其他字段的其他规则和更严格的密码规则.我希望这只应用min:8规则,如果传递的数据中存在密码字段,但如果我将密码字段留空,我会收到验证错误,说明密码字段是必需的.
我不确定我在文档中没有理解什么.我是否需要在验证之前手动删除密码字段,如果表单输入提交为空这样?
$data = $request->all(); if ('' === $data['password']) { unset($data['password']) }
…然后将数组传递给验证器.我认为这是有道理的,但我可以做一些确认,我正确理解它.提前致谢.
文档没有说清楚,但删除必需使它工作.
原文链接:https://www.f2er.com/laravel/138383.html$this->validate($request,[ 'password' => 'sometimes|min:8',]);