我制作了 joomla 2.5(也适用于 joomla 3)组件。
为了测试组件,我创建了一个菜单项“mycomtest-main”并将组件放置在该菜单项页面中。所以完整的本地测试网址是“localhost/joomla/mycomtest-main”。
组件列出了许多项目,并且在显示单击条目表单时有一个按钮,这是我的那个 mvc 组件的条目表单视图,并且 url 变为“localhost/joomla/mycomtest-main?task=edit&id=4”,因为我使用了 JRoute: :_("index.php?...") 以保持安全的 url。
因此,在填写并提交上述输入表单后,它被重定向回默认视图 - localhost/joomla/mycomtest-main 但不幸的是 url 变为 - localhost/joomla/component/mycomtest-main/ 而不是 localhost/joomla/mycomtest-main。
我的组件输入表单视图如下所示 -
<form action="index.php" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
<input type="hidden" name="option" id="option" value="<?php echo $_REQUEST['option']; ?>" />
<input type="hidden" name="task" id="task" value="save" />
<input type="hidden" name="id" id="id" value="<?php if($row!=NULL){ echo $row->id; }?>" />
<input type="hidden" name="page" id="page" value="<?php echo JRequest::getVar('page'); ?>" />
.............rest of the html contents along with submit button
</form>
同样在我的 mvc 组件的 controller.php 文件中,我以这种方式很好地使用了 jroute -
function save()
{
$model = $this->getModel('entry');
if($model->store())
{ $msg = "saved successfully"; $type = 'message'; }
else
{ $msg = 'error found'; $type = 'error';
}
$urlSet=JRoute::_("index.php?option=". $_REQUEST['option']."");
$this->setRedirect($urlSet, $msg, $type);
}
那么我该如何去做,以便在提交条目视图表单后,我被重定向到下面带有正确 URL 的菜单项页面?-
http://localhost/joomla/mycomtest-main/