Optimize using the dependent validation rules in import.

This commit is contained in:
Pavel Mironchik 2021-06-30 09:52:33 +06:00
parent 4aabf0d541
commit ce30ad262e

View File

@ -107,35 +107,53 @@ abstract class Import implements HasLocalePreference, ShouldQueue, SkipsEmptyRow
protected function replaceForBatchRules(array $rules): array protected function replaceForBatchRules(array $rules): array
{ {
$dependent_rules = [ $dependent_rules = [
'after', 'after:',
'after_or_equal', 'after_or_equal:',
'before', 'before:',
'before_or_equal', 'before_or_equal:',
'different', 'different:',
'exclude_if', 'exclude_if:',
'exclude_unless', 'exclude_unless:',
'gt', 'gt:',
'gte', 'gte:',
'in_array', 'in_array:',
'lt', 'lt:',
'lte', 'lte:',
'prohibited_if', 'prohibited_if:',
'prohibited_unless', 'prohibited_unless:',
'required_if', 'required_if:',
'required_unless', 'required_unless:',
'required_with', 'required_with:',
'required_with_all', 'required_with_all:',
'required_without', 'required_without:',
'required_without_all', 'required_without_all:',
'same', 'same:',
]; ];
foreach ($rules as $field => $rule) { $batch_rules = [
foreach ($dependent_rules as $dependent_rule) { 'after:*.',
$rules[$field] = Str::replaceFirst($dependent_rule . ':', $dependent_rule . ':*.', $rules[$field]); 'after_or_equal:*.',
} 'before:*.',
} 'before_or_equal:*.',
'different:*.',
'exclude_if:*.',
'exclude_unless:*.',
'gt:*.',
'gte:*.',
'in_array:*.',
'lt:*.',
'lte:*.',
'prohibited_if:*.',
'prohibited_unless:*.',
'required_if:*.',
'required_unless:*.',
'required_with:*.',
'required_with_all:*.',
'required_without:*.',
'required_without_all:*.',
'same:*.',
];
return $rules; return str_replace($dependent_rules, $batch_rules, $rules);
} }
} }