laravel - Laravel 数组字段总和验证
问题描述
我是 Laravel 的新手,我将 Laravel 的验证器用于不是在 Laravel 中构建的项目。
我需要知道是否有一个简单的内置 Laravel 验证器来验证数组中所有对象中某个字段的总和。
我的输入看起来像:
{
"customer":95,
"name": "My object",
"values":
[
{
"name": "AAA",
"percentage": 50
},
{
"name": "BBB",
"percentage": 50
}
]
}
我需要确保我的百分比总和是 100。有没有简单的方法?
解决方案
使用自定义验证规则进行单属性验证。
使用After Validation Hook进行其他或更复杂的验证,比如多个字段的总和。
public function withValidator($validator)
{
$validator->after(function ($validator) {
if ($this->get('field1') + $this->get('field2') + $this->get('field3') != 100) {
$validator->errors()->add(null, 'The sum of field1, field2 and field3 must be 100');
}
});
}
推荐阅读
- c# - 报表参数“ReportParameter1”是只读的,不能修改。(rsReadOnlyReportParameter)
- mysql - mysql加入组内的最小值
- android - 安卓正则表达式问题
- linux - 我正在尝试在 ubuntu 中打开一个 excel 文件,但它显示垃圾字符
- google-cloud-firestore - 我无法从控制台删除云 Firestore 中的集合
- php - 获取 php 按钮值并在不同页面上使用
- node.js - React + Express 无法获取 /login
- javascript - 用户登录后如何更改初始屏幕?
- r - 是否有关于如何在 R 中设置自己的方括号函数的文献?
- javascript - 检查锚点是否具有特定的 url 与 jQuery 没有重复