如何在 laravel 中验证递归对象
Posted
技术标签:
【中文标题】如何在 laravel 中验证递归对象【英文标题】:How to validate recursion objects in laravel 【发布时间】:2020-03-22 22:27:48 【问题描述】:如何在 Laravel 5+ 中验证递归嵌套对象
我有公司的平衡结构。有规律
<row>:
name
digit
rows: [<row>]
json结构示例
"balance_data":
"rows": [
"name": "aktiva",
"digit": "5555.33",
"rows": [
"name": "balance catalog 1",
"digit": "1234.12",
"rows": [
"name": "balance subcatalog name 1",
"digit": "4321.21",
"rows": []
,
"name": "balance subcatalog name 2",
"digit": "4321.21",
"rows": []
]
,
"name": "balance catalog 2",
"digit": "1234.12",
"rows": [
"name": "balance subcatalog name 3",
"digit": "4321.21",
"rows": []
]
]
]
如何在所有嵌套和子嵌套对象中验证数字是否为必需?
【问题讨论】:
我不知道这是否适用于您的情况,但请看一下:laravel.com/docs/5.8/validation#validating-arrays 并尝试一下(没有承诺):'*.digit' => 'required'
@user3532758 这不起作用,因为有多层嵌套
@PavelLint 无论如何,这是一个长镜头。 :)
【参考方案1】:
您必须为此编写一个自定义验证器。查看this section of the docs here。
【讨论】:
【参考方案2】:<?php
function myFunction($value, $key)
// do validation, this will be called for every key, recursively
$arr=array("balance_data"=>array("row"=>"", array("row"=>"2")));
array_walk_recursive($arr, "myFunction");
?>
这可以使用php的inbuild array_walk_recursive
函数来实现
【讨论】:
以上是关于如何在 laravel 中验证递归对象的主要内容,如果未能解决你的问题,请参考以下文章
在 Reactjs 中循环遍历 Laravel 验证错误对象
如何验证 REST Lumen/Laravel 请求中的参数?