_attributes = $attributes; } final protected function getAuthContext(): AuthContext { return service('myauth')->getAuthContext(); } final public function getAttribute(string $key): string { if (!array_key_exists($key, $this->_attributes)) { throw new RuntimeException(static::class . '->' . __FUNCTION__ . "에서 오류발생: {$key}에 해당하는 속성이 정의되지 않았습니다."); } return $this->_attributes[$key]; } public function getFieldLabel(string $field, string $label, array $viewDatas, array $extras = []): string { switch ($field) { default: $extras = (strpos($viewDatas['formRules'][$field], 'required') !== false) ? ["class" => "text-danger", "required" => "", ...$extras] : $extras; $label = form_label($label, $field, ['class' => 'form-label-sm', ...$extras]); break; } return $label; } /** * CI4의 form_dropdown()을 확장하여