_backend = service('order'); parent::initController($request, $response, $logger); $this->_viewPath .= strtolower($this->_backend->getClassName()); } //장바구니에 담기 public function insert() { $msg = ""; try { $this->_viewDatas = $this->init(__FUNCTION__); //Transaction manully 시작 $this->_backend->transBegin(); $this->insert_process(); $entity = $this->_backend->insert($this->_viewDatas['fieldDatas']); //Transaction manully Commit $this->_backend->transCommit(); $msg = sprintf( "%s에서 %s상품 %s개를 장바구니에 담았습니다.", $this->_viewDatas['title'], $entity->getTtile(), $this->_viewDatas['fieldDatas']['quantity'] ); } catch (\Exception $e) { //Transaction manully Rollback $this->_backend->transRollback(); $msg = sprintf( "%s에서 다음 오류로 인해 장바구니에 담기를 실패하였습니다.\n%s", $this->_viewDatas['title'], $e->getMessage() ); log_message("error", $e->getMessage()); log_message("error", var_export($this->_viewDatas['fieldDatas'], true)); } finally { $this->_session->setFlashdata("return_message", $msg); return redirect()->to($this->_session->getFlashdata(SESSION_NAMES['RETURN_URL'])); } } //View관련 protected function view_process($entity) { $this->_viewDatas['user'] = $this->_backend->getUserModel()->getEntity([$this->_backend->getUserModel()->getPrimaryKey() => $entity->getUser_uid()]); $this->_viewDatas['product'] = $this->_backend->getProductModel()->getEntity([$this->_backend->getProductModel()->getPrimaryKey() => $entity->getProduct_uid()]); return parent::view_process($entity); } }