使用通配符对输入字段进行Laravel验证

时间:2015-11-15 16:45:41

标签: wildcard user-input laravel-validation

我有一个动态生成输入字段的表单,例如:

input['Supplier1],
input['Supplier2'],
input['Supplier3'],

等等。用户可以创建1到10个输入字段之间的任何位置。

我正在使用Laravel的内置验证功能,并且想知道是否有办法用通配符验证字段。

换句话说,不是为'Supplier1','Supplier2'等创建单独的规则,而是可以在'Supplier ^'的位置写一些内容,其中'^'符号代表任何给定的字符。< / p>

目前的规则是:

public function rules()
{
    return [
        'Description1' => 'required|min:2',
        'Supplier1' => 'canBeEmpty|exists:suppliers,SupplierName'
    ];
}

'canBeEmpty'是一个自定义规则,允许将字段提交为空。

1 个答案:

答案 0 :(得分:1)

如果您创建了供应商&#39;输入作为数组的一部分,您可以使用这样的解决方案:https://stackoverflow.com/a/33371994/613703

按以下方式构建输入:

<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', 
]);