保存方法中的Joomla setredirect override中断apply方法

时间:2014-05-07 13:29:04

标签: save joomla3.0 apply

我的组件编辑页面中有三个工具栏按钮(joomla 3.0)。

view.html.php

protected function addToolBar()
{
  JToolBarHelper::apply('editpage.apply');
  JToolBarHelper::save('editpage.save');
  JToolBarHelper::cancel('editpage.cancel');
}

这很有效。但现在当我在控制器中更改我的save方法的重定向路径时,就像这样...

控制器/ editpage.php

function save()
{
  parent::save();
  $this->setredirect(JRoute::_('index.php?option=com_mycom&view=productlist', false));
}

...而不是点击"应用",用户也被重定向到此路径。这就是问题所在。如果没有控制器中的覆盖方法,则应用按钮可正常工作。将保存所有字段,编辑页面不会离开。那么我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

Save和apply方法调用joomla库的相同功能来保存记录。解决问题的更好方法是

<强> view.html.php

protected function addToolBar()
{
  JToolBarHelper::apply('editpage.tasktoApply');   // any name other then apply
  JToolBarHelper::save('editpage.tasktoSave');  // any name other then save
  JToolBarHelper::cancel('editpage.cancel');
}

<强>控制器/ editpage.php

function tasktoApply()
{
  parent::save();
  $this->setredirect('ANY CUSTOM REDIRECT AS PER YOUR NEED', false));
}

function tasktoSave()
{
  parent::save();
  $this->setredirect('ANY CUSTOM REDIRECT AS PER YOUR NEED', false));
}

这会解决你的问题