如何解决Laravel验证规则有时默认为否吗?
如果您在Laravel中创建验证规则,但忽略了必需而只是使用,请说出电子邮件规则。它默认为什么?
例如
$request->validate([
'email' => 'email'
]);
这些验证规则是否相等?
$request->validate([
'email' => 'sometimes|email'
]);
// vs
$request->validate([
'email' => 'email'
]);
很抱歉,如果以前已经回答过。我尽了最大的努力来搜索类似的问题,但是我可能使用了错误的单词(不确定如何在Google / Stack Overflow搜索中使用该短语)。
解决方法
for c in range(3,1000):
for b in range(2,1000-c-1):
for a in range(1,1000-c-b):
if a**2 + b**2 == c**2 and a + b + c == 1000:
print(a * b * c)
这将始终将for c in range(3,1000):
c2 = c**2
for b in range(2,1000-c-1):
a = 1000-c-b
if a**2 + b**2 == c2:
print(a * b * c)
# exit the loops
键(即使为空)验证为有效的$request->validate([
'email' => 'email'
]);
格式。
email
仅会验证email
键如果键在$request->validate([
'email' => 'sometimes|email'
]);
中存在。
所以区别在于,使用email
仅在$request->all()
对象包含它的情况下才对其进行验证,否则它将始终针对该密钥进行验证。
如果我可以简化一下,我有时会说,仅当请求中显示该字段时,才应用其余的验证规则。想象一下,有时就像一个if语句,该语句在应用任何规则之前检查请求/输入中是否存在该字段。
将它们包裹起来可能是一件乏味的事情,但这是一些示例:
sometimes
,
我个人从未使用过sometimes
规则。根据文档:
https://laravel.com/docs/7.x/validation#conditionally-adding-rules
您可能希望仅在输入数组中存在该字段时才对该字段运行验证检查。要快速完成此操作,请将有时会使用的规则添加到您的规则列表中
如果我理解正确,那么这在很大程度上取决于您的前端实现。如果您使用带有<form>
输入的常规html name="email"
元素,则提交表单后,它将立即发送一个名为email
的密钥。
因此,为了不发送此类密钥,您必须将其从表单中删除,或者手动进行HTTP请求(因此不理会任何HTML表单),以便您可以决定自己的输入字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。