_className = 'Logger'; $this->_model = new LoggerModel(); $this->_defines = [ 'view' => [ 'fields' => ['user_uid', 'title', 'content', 'status', 'created_at'], 'fieldFilters' => ['user_uid', 'status'], 'fieldRules' => [], ], 'index' => [ 'fields' => ['user_uid', 'title', 'status', 'created_at'], 'fieldFilters' => ['user_uid', 'status'], 'batchjobFilters' => [], ], 'excel' => [ 'fields' => ['user_uid', 'title', 'status', 'created_at'], 'fieldFilters' => ['user_uid', 'status'], ], ]; helper('Logger'); $this->_viewPath = $this->_viewPath . '/logger'; $this->_viewDatas['title'] = lang($this->_className . '.title'); //모든 필요한 FormOption등 조기화작업 필요 } private function getUserModel(): UserModel { return is_null($this->_userModel) ? new UserModel() : $this->_userModel; } //Field별 Form Option용 protected function getFieldFormOption(string $field): array { switch ($field) { case 'user_uid': if (is_null($this->_user_uids)) { //모든 필요한 FormOption등 조기화작업 필요 $this->_user_uids = [DEFAULT_EMPTY => lang($this->_className . '.label.' . $field) . ' 선택']; foreach ($this->getUserModel()->findAll() as $user) { $this->_user_uids[$user['uid']] = $user['name']; } } return $this->_user_uids; break; default: return parent::getFieldFormOption($field); break; } } }