我创建了一个带有表单的自定义组件,用于更新要在前端显示的四个产品的价格。
我的主控制器代码在这里:
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); ?>
请建议我做错了。这是第三天我在挠头。 :(
答案 0 :(得分:4)
您可以在代码中更新操作(或调用它们)。
新实例或更新新内容 - 只需在代码中添加一个if
并在表单上添加hidden
输入。例如:
<input type="hidden" name="task" value="update" />