dataPersistor = $dataPersistor; parent::__construct($context); } /** * Save action * * @return ResultInterface */ public function execute() { /** @var Redirect $resultRedirect */ $resultRedirect = $this->resultRedirectFactory->create(); $data = $this->getRequest()->getPostValue(); if ($data) { $id = $this->getRequest()->getParam('slide_id'); $model = $this->_objectManager->create(Slide::class)->load($id); if (!$model->getId() && $id) { $this->messageManager->addErrorMessage(__('This Slide no longer exists.')); return $resultRedirect->setPath('*/*/'); } $model->setData($data); try { $model->save(); $this->messageManager->addSuccessMessage(__('You saved the Slide.')); $this->dataPersistor->clear('olegnax_carousel_slide'); if ($this->getRequest()->getParam('back')) { return $resultRedirect->setPath('*/*/edit', ['slide_id' => $model->getId()]); } return $resultRedirect->setPath('*/*/'); } catch (LocalizedException $e) { $this->messageManager->addErrorMessage($e->getMessage()); } catch (Exception $e) { $this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the Slide.')); } $this->dataPersistor->set('olegnax_carousel_slide', $data); return $resultRedirect->setPath('*/*/edit', ['slide_id' => $this->getRequest()->getParam('slide_id')]); } return $resultRedirect->setPath('*/*/'); } }