【发布时间】:2016-05-13 19:27:34
【问题描述】:
我正在尝试仅在存在密码字段时对其进行验证。我想允许某人编辑用户,他们可能想也可能不想更改用户密码。所以我想我可以使用 Laravel 验证规则,特别是“有时”规则。我有这套规则:
$this->validate($request, [
'password' => 'sometimes|required|min:8',
]);
这对于示例来说是简化的,通常会有其他字段的其他规则和更严格的密码规则。我希望这仅在传递的数据中存在密码字段时才应用 min:8 规则,但如果我将密码字段留空,我会收到一个验证错误,提示密码字段是必需的。
我不确定我在文档中不理解什么。如果表单输入像这样提交为空,是否需要在验证之前手动删除密码字段?
$data = $request->all();
if ('' === $data['password']) {
unset($data['password'])
}
...然后将数组传递给验证器。我认为这是有道理的,但我可以确认我理解正确。提前致谢。
【问题讨论】:
-
从文档中,这就是我所理解的。所以,基本上你很高兴,除非有人另有说明。
-
似乎如果您删除所需的规则,它可以像这样正常工作:'sometimes|min:8.....',但文档并没有真正说明这一点。
-
是的。这就是我首先想到的,然后再次检查了文档。 :D
-
我看到一个评论说要这样做,所以我做了,然后评论消失了,是你吗?
-
是的。那是我。无论如何很高兴能帮上忙。
标签: php validation laravel