From 2497686754206074aab4b1e9ff3c05cc5caecce0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20B=C3=BChler?= Date: Thu, 17 Mar 2022 10:43:48 +0100 Subject: [PATCH 1/3] support rules as array for multiple file uploads allows rules for multiple files like ->rules(['files' => 'between:1,3', 'files.*' => 'required|max:1024']) --- src/Traits/UploadsFiles.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Traits/UploadsFiles.php b/src/Traits/UploadsFiles.php index b2efdaa..e2d9df5 100644 --- a/src/Traits/UploadsFiles.php +++ b/src/Traits/UploadsFiles.php @@ -24,9 +24,9 @@ public function customValidateFilesIn($field_name, $rules) if(filled($this->$field_name) && filled($rules)) { $key = is_array($this->$field_name) ? $field_name.'.*' : $field_name; try { - Validator::make([$field_name => $this->$field_name], [ - $key => $rules, - ])->validate(); + Validator::make([$field_name => $this->$field_name], + is_array($rules) ? $rules : [$key => $rules]) + ->validate(); $this->showFileUploadError = false; } catch (ValidationException $e) { $this->showFileUploadError = true; From 8ba5b90f9d41d0de64680103f499ed713a7445b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20B=C3=BChler?= Date: Thu, 17 Mar 2022 15:30:08 +0100 Subject: [PATCH 2/3] handle array and string rules for file validation --- src/Traits/ValidatesFields.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Traits/ValidatesFields.php b/src/Traits/ValidatesFields.php index 2127e74..bed782a 100644 --- a/src/Traits/ValidatesFields.php +++ b/src/Traits/ValidatesFields.php @@ -53,8 +53,11 @@ protected function recursiveFieldRules($fields = null, string $prefix = 'form_da } else { $ruleName = "$prefix.$field->name"; } - - $rules[$ruleName] = $field->rules ?? 'nullable'; + if ($field->type === 'file' && is_array($field->rules)) { + $rules = $field->rules; + }else{ + $rules[$ruleName] = $field->rules ?? 'nullable'; + } } } } From e574af8bba9bd0cb056952dbc847fbb8c5c460e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20B=C3=BChler?= Date: Thu, 24 Mar 2022 11:07:09 +0100 Subject: [PATCH 3/3] fix file error message display --- resources/views/components/file-upload.blade.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/resources/views/components/file-upload.blade.php b/resources/views/components/file-upload.blade.php index f698855..c891eaa 100644 --- a/resources/views/components/file-upload.blade.php +++ b/resources/views/components/file-upload.blade.php @@ -41,10 +41,14 @@ class="{{ $field->inputClass }}"/> @endif {{--show livewire file upload default validation error--}} - @error($field->multiple ? $field->name.'.*': $field->name) - @foreach($errors->get($field->multiple ? $field->name.'.*': $field->name) as $message) -

{{ $field->multiple ? \Tanthammar\TallForms\ErrorMessage::parse($message[0]) : \Tanthammar\TallForms\ErrorMessage::parse($message) }}

- @endforeach + @error($field->name) +

{{ \Tanthammar\TallForms\ErrorMessage::parse($message) }}

+ @enderror + @error($field->name.'.*') + + @foreach($errors->get($field->name.'.*') as $message) +

{{ \Tanthammar\TallForms\ErrorMessage::parse($message[0])}}

+ @endforeach @if(!$showFileUploadError)

{{ $uploadFileError }}

@endif @enderror {{--show components general validation error --}}