Handle dynamic fields on backend

This commit is contained in:
Benjamin Beganović 2021-10-04 12:34:00 +02:00
parent 166e27c7bd
commit 61eddbb755

View File

@ -25,15 +25,25 @@ class RegisterRequest extends FormRequest
* *
* @return array * @return array
*/ */
public function rules() public function rules(): array
{ {
$rules = [ $rules = [];
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'], foreach ($this->company()->client_registration_fields as $field) {
'phone' => ['required', 'string', 'max:255'], if ($field['required']) {
'email' => ['required', 'string', 'email:rfc,dns', 'max:255'], $rules[$field['key']] = ['required'];
'password' => ['required', 'string', 'min:6', 'confirmed'], }
]; }
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) { if ($this->company()->settings->client_portal_terms || $this->company()->settings->client_portal_privacy_policy) {
$rules['terms'] = ['required']; $rules['terms'] = ['required'];