Laravel 使用通配符验证输入字段
Laravel validation of input field with wildcard
我有一个动态生成输入字段的表单,例如:
input['Supplier1],
input['Supplier2'],
input['Supplier3'],
等等。用户可以在这些输入字段中的任意位置创建 1 到 10 个。
我正在使用 Laravel 的内置验证功能,想知道是否有办法使用通配符验证字段。
换句话说,不是为 'Supplier1'、'Supplier2' 等创建单独的规则,而是可以按照 'Supplier^' 的方式写一些东西,其中 '^'符号表示任何给定的字符。
目前的规则是:
public function rules()
{
return [
'Description1' => 'required|min:2',
'Supplier1' => 'canBeEmpty|exists:suppliers,SupplierName'
];
}
'canBeEmpty'是自定义规则,允许字段提交为空。
如果您将 'supplier' 输入创建为数组的一部分,您可以使用这样的解决方案::
按以下方式构造您的输入:
<input type='text' name='suppliers[]' value='theValue' />
<input type='text' name='suppliers[]' value='theValue' />
etc...
$validator = Validator::make($request->all(), [
'suppliers' => 'array',
// your other rules here
]);
// Here you can set the rules for each Supplier in your Array
$validator->each('suppliers', [
'id' => 'required',
'quantity' => 'min:0',
]);
我有一个动态生成输入字段的表单,例如:
input['Supplier1],
input['Supplier2'],
input['Supplier3'],
等等。用户可以在这些输入字段中的任意位置创建 1 到 10 个。
我正在使用 Laravel 的内置验证功能,想知道是否有办法使用通配符验证字段。
换句话说,不是为 'Supplier1'、'Supplier2' 等创建单独的规则,而是可以按照 'Supplier^' 的方式写一些东西,其中 '^'符号表示任何给定的字符。
目前的规则是:
public function rules()
{
return [
'Description1' => 'required|min:2',
'Supplier1' => 'canBeEmpty|exists:suppliers,SupplierName'
];
}
'canBeEmpty'是自定义规则,允许字段提交为空。
如果您将 'supplier' 输入创建为数组的一部分,您可以使用这样的解决方案:
按以下方式构造您的输入:
<input type='text' name='suppliers[]' value='theValue' />
<input type='text' name='suppliers[]' value='theValue' />
etc...
$validator = Validator::make($request->all(), [
'suppliers' => 'array',
// your other rules here
]);
// Here you can set the rules for each Supplier in your Array
$validator->each('suppliers', [
'id' => 'required',
'quantity' => 'min:0',
]);