Joomla:在自定义视图中保存表单时出错

时间:2013-04-05 08:59:33

标签: php model-view-controller joomla joomla3.0 joomla-component

我创建了一个带有表单的自定义组件,用于更新要在前端显示的四个产品的价格。

我的主控制器代码在这里:

public function display($cachable = false, $urlparams = false) {

    require_once JPATH_COMPONENT.'/helpers/calculator.php';

    $view       = JFactory::getApplication()->input->getCmd('view', 'pricetable');
    $layout     = JFactory::getApplication()->input->getCmd('layout', 'edit');

    JFactory::getApplication()->input->set( 'layout', $layout );
    JFactory::getApplication()->input->set('view', $view);
    JFactory::getApplication()->input->set('id', 1);

    parent::display($cachable, $urlparams);
    return $this;
}

id设置为1,因此它只加载数据库的第一行。

pricetable容器的代码是:

function __construct() {
    $this->view_list = 'pricetable';
    parent::__construct();
}

现在在admin后端,表单根据需要加载第一行数据。 当我尝试保存表单时,它会重定向到administrator/index.php?option=com_calculator&view=pricetable,错误是:

  

错误:您不允许使用该链接直接访问该链接   第(1页)。

我的表格行动是:

<?php echo JRoute::_('index.php?option=com_calculator&task=pricetable.edit&id='.(int) $this->item->id); ?>

请建议我做错了。这是第三天我在挠头。 :(

1 个答案:

答案 0 :(得分:4)

您可以在代码中更新操作(或调用它们)。 新实例或更新新内容 - 只需在代码中添加一个if并在表单上添加hidden输入。例如:

<input type="hidden" name="task" value="update" />