setTitleField(ClientModel::TITLE); } public function getFieldForm(string $field, mixed $value, array $viewDatas, array $extras = []): string { if (in_array($viewDatas['action'], ['create', 'modify'])) { $extras = (strpos($viewDatas['field_rules'][$field], 'required') !== false) ? ["class" => "form-control", "required" => "", ...$extras] : ["class" => "form-control", ...$extras]; } $value = $value ?: DEFAULTS['EMPTY']; switch ($field) { case 'email': $form = form_input($field, $value, ["placeholder" => "예)test@example.com", ...$extras]); break; case 'phone': $form = form_input($field, $value, ["placeholder" => "예)010-0010-0010", ...$extras]); break; case 'role': if (!is_array($viewDatas['field_options'][$field])) { echo var_dump($viewDatas['field_options']); exit; } if (in_array($viewDatas['action'], ['create_form', 'modify_form'])) { $forms = []; foreach ($viewDatas['field_options'][$field] as $key => $label) { $values = is_array($value) ? $value : explode(DEFAULTS["DELIMITER_ROLE"], $value); $forms[] = form_checkbox("{$field}[]", $key, in_array($key, $values)) . $label; } $form = implode(" ", $forms); } else { $formOptions = array_merge( ["" => lang($viewDatas['class_path'] . '.label.' . $field) . ' 선택'], $viewDatas['field_options'][$field] ); $form = form_dropdown($field, $formOptions, $value, $extras); } break; default: $form = parent::getFieldForm($field, $value, $viewDatas, $extras); break; } return $form; } // public function getFieldView(string $field, array $viewDatas, array $extras = []): string { $value = $viewDatas['entity']->$field ?: DEFAULTS['EMPTY']; switch ($field) { case 'role': $roles = []; foreach (explode(DEFAULTS["DELIMITER_ROLE"], $value) as $key) { $roles[] = $viewDatas['field_options'][$field][$key]; } $value = implode(" , ", $roles); break; case 'account_balance': case 'coupon_balance': case 'point_balance': $value = number_format($value); break; default: $value = parent::getFieldView($field, $viewDatas, $extras); break; } return $value; } // }