_className .= '/Board'; $this->_model = new BoardModel(); $this->_defines = [ 'insert' => [ 'fields' => ['board_category', 'title', 'content', 'passwd', 'confirmpassword', 'status'], 'fieldFilters' => ['board_category', 'user_uid', 'status'], 'fieldRules' => [ 'board_category' => 'required|string', 'title' => 'required|string', 'content' => 'required|string', 'passwd' => 'if_exist|trim|string', 'confirmpassword' => 'if_exist|trim|matches[passwd]', 'view_cnt' => 'if_exist|numeric', 'status' => 'if_exist|string', ] ], 'update' => [ 'fields' => ['board_category', 'title', 'content', 'passwd', 'confirmpassword', 'status'], 'fieldFilters' => ['board_category', 'user_uid', 'status'], 'fieldRules' => [ 'board_category' => 'required|string', 'title' => 'required|string', 'content' => 'required|string', 'passwd' => 'if_exist|trim|string', 'confirmpassword' => 'if_exist|trim|matches[passwd]', 'view_cnt' => 'if_exist|numeric', 'status' => 'if_exist|string', ] ], 'view' => [ 'fields' => ['board_category', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at', 'content'], 'fieldFilters' => ['board_category', 'user_uid', 'status'], 'fieldRules' => ['board_category', 'user_uid', 'status'], ], 'index' => [ 'fields' => ['board_category', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at'], 'fieldFilters' => ['board_category', 'user_uid', 'status'], 'batchjobFilters' => ['board_category', 'user_uid', 'status'], ], 'excel' => [ 'fields' => ['board_category', 'user_uid', 'title', 'view_cnt', 'status', 'updated_at', 'created_at'], 'fieldFilters' => ['board_category', 'user_uid', 'status'], ], ]; helper($this->_className); $this->_viewPath = strtolower($this->_className); $this->_viewDatas['title'] = lang($this->_className . '.title'); $this->_viewDatas['className'] = $this->_className; } 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 = $this->getUserModel()->getFieldFormOptions( ['status' => 'use'], [DEFAULTS['EMPTY'] => lang($this->_className . '.label.' . $field) . ' 선택'] ); } return $this->_user_uids; default: return parent::getFieldFormOption($field); break; } } ////Action 모음 //Insert관련 final public function insert() { return $this->insert_procedure(); } //Update관련 final public function update($uid) { return $this->update_procedure($uid); } //Toggle관련 final public function toggle($uid, string $field) { return $this->toggle_procedure($uid, $field); } //Batchjob 관련 final public function batchjob() { return $this->batchjob_procedure(); } //Delete 관련 final public function delete($uid) { return $this->delete_procedure($uid); } //View 관련 final public function view($uid) { return $this->view_procedure($uid); } //Index 관련 final public function index() { return $this->index_procedure(); } //Excel 관련 final public function excel() { return $this->excel_procedure(); } }