I am working on a custom module in magneto 2. i am creating an admin form using UI Component, when i click on save button Page redirects to its self
Vendor\Module\Block\Adminhtml\ProductSliders\Edit\SaveButton
use Magento\Framework\View\Element\UiComponent\Control
\ButtonProviderInterface;
/**
* Class SaveButton
* @package Magento\Customer\Block\Adminhtml\Edit
*/
class SaveButton extends GenericButton implements ButtonProviderInterface
{
/**
* @return array
*/
public function getButtonData()
{
return [
'label' => __('Save'),
'class' => 'save primary',
'data_attribute' => [
'mage-init' => ['button' => ['event' => 'save']],
'form-role' => 'save',
],
'sort_order' => 90,
];
}
}
i have make buttons using Block here is my Edit.php Class
Vendor\Module\Block\Adminhtml\ProductSliders\Edit
class Edit extends \Magento\Backend\Block\Widget\Form\Container
{
protected $_coreRegistry = null;
public function __construct(
\Magento\Backend\Block\Widget\Context $context,
\Magento\Framework\Registry $registry,
array $data = []
) {
$this->_coreRegistry = $registry;
parent::__construct($context, $data);
}
protected function _construct()
{
$this->_objectId = 'slider_id';
$this->_blockGroup = 'FME_ProductSliders';
$this->_controller = 'adminhtml_productsliders';
parent::_construct();
if ($this->_isAllowedAction('FME_ProductSliders::productsliders')) {
$this->buttonList->update('save', 'label', __('Save'));
$this->buttonList->add(
'saveandcontinue',
[
'label' => __('Save and Continue Edit'),
'class' => 'save',
'data_attribute' => [
'mage-init' => [
'button' => ['event' => 'saveAndContinueEdit', 'target' => '#edit_form'],
],
]
],
-100
);
} else {
$this->buttonList->remove('save');
}
if ($this->_isAllowedAction('FME_ProductSliders::productsliders')) {
$this->buttonList->update('delete', 'label', __('Delete'));
} else {
$this->buttonList->remove('delete');
}
}
/**
* Retrieve text for header element depending on loaded page
*
* @return string
*/
public function getHeaderText()
{
if ($this->_coreRegistry->registry('fme_productsliders')->getId()) {
return __(
"Edit Sliders '%1'",
$this->escapeHtml($this->_coreRegistry->registry('fme_productsliders')->getTitle())
);
} else {
return __('New Sliders');
}
}
/**
* Check permission for passed action
*
* @param string $resourceId
* @return bool
*/
public function _isAllowedAction($resourceId)
{
return $this->_authorization->isAllowed($resourceId);
}
/**
* Getter of url for "Save and Continue" button
* tab_id will be replaced by desired by JS later
*
* @return string
*/
public function _getSaveAndContinueUrl()
{
return $this->getUrl(
'fme_productsliders/*/save',
['_current' => true,
'back' => 'edit',
'active_tab' => '{{tab_id}}']
);
}
/**
* Prepare layout
*
* @return \Magento\Framework\View\Element\AbstractBlock
*/
protected function _prepareLayout()
{
$this->_formScripts[] = "
function toggleEditor() {
if (tinyMCE.getInstanceById('overview') == null) {
tinyMCE.execCommand('mceAddControl', false, 'overview');
} else {
tinyMCE.execCommand('mceRemoveControl', false, 'overview');
}
};
";
return parent::_prepareLayout();
}
}
Here is my save.php controller
Vendor\Module\Controller\Adminhtml\Module;
class Save extends \Magento\Backend\App\Action
{
var $sliderFactory;
public function __construct(
\Magento\Backend\App\Action\Context $context,
\FME\ProductSliders\Model\ProductSlidersFactory $sliderFactory
) {
parent::__construct($context);
$this->sliderFactory = $sliderFactory;
}
public function execute()
{
$data = $this->getRequest()->getPostValue();
if (!$data) {
$this->_redirect('fme_productsliders/productsliders/edit');
return;
}
try {
$rowData = $this->sliderFactory->create();
$rowData->setData($data);
if (isset($data['slider_id'])) {
$rowData->setEntityId($data['slider_id']);
}
$rowData->save();
$this->messageManager->addSuccess(__('Row data has been successfully saved.'));
} catch (\Exception $e) {
$this->messageManager->addError(__($e->getMessage()));
}
$this->_redirect('fme_productsliders/productsliders/index');
}
/**
* @return bool
*/
protected function _isAllowed()
{
return $this->_authorization->isAllowed('FME_ProductSliders::save');
}
}
i Need a Help if anyone can??