From 61eddbb7559c9417ac9046f16c531c8b4702dc0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Oct 2021 12:34:00 +0200 Subject: [PATCH] Handle dynamic fields on backend --- .../Requests/ClientPortal/RegisterRequest.php | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/Http/Requests/ClientPortal/RegisterRequest.php b/app/Http/Requests/ClientPortal/RegisterRequest.php index 2286e31ea736..8b54ccc5488d 100644 --- a/app/Http/Requests/ClientPortal/RegisterRequest.php +++ b/app/Http/Requests/ClientPortal/RegisterRequest.php @@ -25,15 +25,25 @@ class RegisterRequest extends FormRequest * * @return array */ - public function rules() + public function rules(): array { - $rules = [ - 'first_name' => ['required', 'string', 'max:255'], - 'last_name' => ['required', 'string', 'max:255'], - 'phone' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email:rfc,dns', 'max:255'], - 'password' => ['required', 'string', 'min:6', 'confirmed'], - ]; + $rules = []; + + foreach ($this->company()->client_registration_fields as $field) { + if ($field['required']) { + $rules[$field['key']] = ['required']; + } + } + + foreach ($rules as $field => $properties) { + if ($field === 'email') { + $rules[$field] = array_merge($rules[$field], ['email:rfc,dns', 'max:255']); + } + + if ($field === 'password') { + $rules[$field] = array_merge($rules[$field], ['string', 'min:6', 'confirmed']); + } + } if ($this->company()->settings->client_portal_terms || $this->company()->settings->client_portal_privacy_policy) { $rules['terms'] = ['required'];