1

这是我的问题:我需要传递一个参数来编辑 joomla 的表单,所以链接将是这样的:https://mydomain.com/administrator/index.php?option=com_mycom&task=mycom.edit&type=country&id=233。参数“类型”必须发送到我的编辑表单。但我不能通过这种方式在我的“view.html.php”文件中得到它

$input = JFactory::getApplication()->input 
$type = $input->getVar("type");

导致链接始终删除“类型”参数

4

1 回答 1

2

您提到的链接链接执行控制器方法编辑,com_mycom/controllers/mycom.php该方法扩展JControllerForm了诸如项目签入、ACL 检查等发生的事情,并且用户可能被重定向到编辑表单(请参阅JControllerForm::edit)。

除了表键(通常是项目 ID)之外的任何内容都会从查询中删除。

将默认编辑方法复制到您的子控制器并修改以读取您想要的内容

public function edit($key = null, $urlVar = null)
{
    $app   = JFactory::getApplication();
    $type  = $app->input->get->('type', null');

    //...

稍后在重定向新项目和现有项目时附加'&type=' . $type到 url 查询

$this->setRedirect(
    JRoute::_(
        'index.php?option=' . $this->option . '&view=' . $this->view_list . '&type=' . $type
于 2013-04-26T11:24:19.657 回答