我需要为动态数组添加验证,该动态数组的元素可以是字符串或包含字符串的后续数组,但我找不到保存此规则的方法。
我当前的验证:
$data = $request->validate([
'answers' => ['required', 'array'],
'answers.*' => ['required', 'max:255'],
'answers.*.*' => ['nullable', 'string', 'max:255']
]);
字符串
样品输入:
"answers" => array:3 [▼
4 => array:1 [▼
0 => "Tests"
1 => "Tests 2"
]
5 => "Test"
6 => "Yes"
]
型
3条答案
按热度按时间xxe27gdn1#
所以,我创造了一些东西,可能会解决你的问题,我已经尝试过了,工作。
首先,您可能希望创建一个新的Rule类,正如我在您的问题中所评论的,例如,可能使用artisan命令
php artisan make:rule DynamicArray
给它给予一个名称。您需要在
app/Rules/DynamicArray
中执行以下操作:字符串
然后在你的控制器中你会这样结束:
型
你可以调试$data来检查它是否工作:
型
它将通过验证:
x1c 0d1x的数据
希望能解决你的问题!
cngwdvgl2#
创建自定义规则类。例如:
NestedArrayWithStrings
然后检查:
字符串
在ForLoop中等等。
像这样添加到验证:
型
vdzxcuhz3#
你需要在Laravel中定义一个自定义规则。
php artisan make:rule NestedArrayWithStrings
,这将在App\Rules
目录中创建一个新文件。字符串
型
下面将是你的递归代码来判断值,如果它通过:
型
**注意:**从技术上讲,前端提供的所有内容都将以字符串形式出现,因此您需要沿着
is_string
以过滤出您希望拥有的数据类型。