- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Laravel 5.8(也用 Laravel 6.1.0 测试过)作业,它定期从 NOAA Spacer Weather Prediction Centre 下载文件.作为工作的一部分,我想在将某些属性插入数据库之前验证它们,如果事情不正确,则使工作失败。
SWPC 文件是一个 JSON 文件,其中包含一组对象,如下所示:
[{
time_tag: "2019-10-02T13:39:00",
bt: 4.45,
bz_gsm: 0.09,
// (there are lots of other, irrelevant fields here)
}, {
// (more of the same data here, repeated dozens of times)
}]
$request = $guzzle->request('GET', 'https://services.swpc.noaa.gov/json/rtsw/rtsw_mag_1m.json');
$imf = collect(json_decode($request->getBody()->__toString()));
Validator::make($imf->all(), [
'*.time_tag' => 'required|date', // Must be a valid date
'*.bt' => 'required', // Bt must be present
'*.bz_gsm' => 'required', // Bz must be present
])->validate();
dd($imf->first());
validate()
在手动创建的验证器上的行为应该与验证请求对象的行为相同(即:“如果验证失败,用户将自动被重定向,或者在 AJAX 请求的情况下,将返回 JSON 响应”)
time_tag
,
bt
和
bz_gsm
字段为空。如果我删除
time_tag
验证规则,
time_tag
不再为空(但
bt
和
bz_gsm
为空)。与
bt
相同和
bz_gsm
字段。基本上任何经过验证的字段都会被清空。
$validator = Validator::make($imf->all(), [
'*.time_tag' => 'required|date',
'*.bt' => 'required|file', // Bt is not an uploaded file! Validation should fail.
'*.bz_gsm' => 'required',
]);
dd($validator->fails());
fails
是
false
(即验证通过)。如果我
dd($imf->first())
,然后再次
time_tag
,
bt
和
bz_gsm
为空,而
$imf
中的所有其他元素是原始值。
dd($imf->all())
之前,给出了很多如下所示的输出:
array:2031 [
0 => {#922
+"time_tag": "2019-10-02T23:55:00"
+"active": true
+"source": "ACE"
+"range": null
+"scale": null
+"sensitivity": null
+"manual_mode": false
+"sample_size": 60
+"bt": 3.48
+"bx_gse": -3.13
+"by_gse": 0.58
+"bz_gse": 1.4
+"theta_gse": 23.73
+"phi_gse": 169.57
+"bx_gsm": -3.13
+"by_gsm": 0.9
+"bz_gsm": 1.23
+"theta_gsm": 20.65
+"phi_gsm": 164.0
+"max_telemetry_flag": 0
+"max_data_flag": 0
+"overall_quality": 0
}
// ... a few thousand more lines of output here
dd($imf->all())
验证后给我:
array:2032 [
0 => {#922
+"time_tag": null
+"active": true
+"source": "ACE"
+"range": null
+"scale": null
+"sensitivity": null
+"manual_mode": false
+"sample_size": 60
+"bt": null
+"bx_gse": -3.16
+"by_gse": 0.94
+"bz_gse": 1.2
+"theta_gse": 20.01
+"phi_gse": 163.43
+"bx_gsm": -3.15
+"by_gsm": 1.2
+"bz_gsm": null
+"theta_gsm": 15.69
+"phi_gsm": 159.09
+"max_telemetry_flag": 0
+"max_data_flag": 0
+"overall_quality": 0
}
// ... a few thousand more lines of output here
最佳答案
您可以在 dd()
中查看你传递给验证器的是一个 stdObjects 数组(当它看到 json_decode()
时,它是 {}
的默认值)。但是,'*.blah'
验证器的符号实际上是用于验证数组的数组。显然,您发现在传递对象或数组时会出现奇怪的行为。
简单的解决方法是传递 second argument的 true
至json_decode()
,这会将对象转换为关联数组,以便验证器可以正确解析它们。
$imf = collect(json_decode($request->getBody()->__toString(), true));
$imf
的结构。从你所拥有的;您在验证后对其进行的任何处理都必须进行适当调整。
关于php - Laravel 验证会覆盖我的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58203388/
在 JSF2 应用程序中遇到验证属性的问题时,有两种主要方法。 使用 Annotation 在 ManagedBean 上定义验证 @ManagedBean public class MyBean {
我想实现一个不常见的功能,我认为 jquery 验证插件将是最好的方法(如果您在没有插件的情况下建议和回答,我们也会欢迎)。我想在用户在输入字段中输入正确的单词后立即隐藏表单。我试过这个: $("
我有几个下拉菜单(类名为month_dropdown),并且下拉菜单的数量不是恒定的。我怎样才能为它们实现 NotEqual 验证。我正在使用 jQuery 验证插件。 这就是我写的 - jQuery
我设法制作了这个网址验证代码并且它起作用了。但我面临着一个问题。我认为 stackoverflow 是获得解决方案的最佳场所。 function url_followers(){ var url=do
我目前正在使用后端服务,该服务允许用户在客户端应用程序上使用 Google Games 库登录。 用户可以通过他们的 gplay ID 向我们发送信息,以便登录或恢复旧帐户。用户向我们发送以下内容,包
我正在尝试验证输入以查看它是否是有效的 IP 地址(可能是部分地址)。 可接受的输入:172、172.112、172.112.113、172.112.113.114 Not Acceptable 输入
我从 Mongoose 验证中得到这条消息: 'Validator failed for path phone with value ``' 这不应该发生,因为不需要电话。 这是我的模型架构: var
我一直在尝试使用Python-LDAP (版本 2.4.19)在 MacOS X 10.9.5 和 Python 2.7.9 下 我想在调用 .start_tls_s() 后验证与给定 LDAP 服务
我正在处理一个仅与 IE6 兼容的旧 javascript 项目(抱歉...),我想仅在 VS 2017 中禁用此项目的 ESLint/CSLint/Javascript 验证/CSS 验证。 我知道
我正在寻找一种方法来验证 Spring 命令 bean 中的 java.lang.Double 字段的最大值和最小值(一个值必须位于给定的值范围之间),例如, public final class W
我正在尝试在 springfuse(JavaEE 6 + Spring Framework (针对 Jetty、Tomcat、JBoss 等)) 和 maven 的帮助下构建我的 webapps 工作
我试图在我们的项目中使用 scalaz 验证,但遇到了以下情况: def rate(username: String, params: Map[String, String]): Validation
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
我有一个表单,人们可以单击并向表单添加字段,并且我需要让它在单击时验证这些字段中的值。 假设我单击它两次并获取 2 个独立的字段集,我需要旋转 % 以确保它在保存时等于 100。 我已放入此函数以使其
在我的页面中有一个选项可以创建新的日期字段输入框。用户可以根据需要创建尽可能多的“截止日期”和“起始日期”框。就像, 日期_to1 || date_from1 日期到2 ||日期_from2 date
我有一个像这样的 Yaml 文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss des
有没有办法在动态字段上使用 jquery 验证表单。 我想将其设置为必填字段 我正在使用 Jsp 动态创建表单字段。 喜欢 等等...... 我想使用必需的表单字段验证此表单字段。 最佳答
嗨,任何人都可以通过提供 JavaScript 代码来帮助我验证用户名文本框不应包含数字,它只能包含一个字符。 最佳答案 使用正则表达式: (\d)+ 如果找到匹配项,则字符串中就有一个数字。 关于J
我有两个输入字段holidayDate和Description(id=tags) $(document).ready(function() {
我遇到了这个问题,这些验证从电子邮件验证部分开始就停止工作。 我只是不明白为什么即使经过几天的观察,只是想知道是否有人可以在这里指出我的错误? Javascript部分: function valid
我是一名优秀的程序员,十分优秀!