我试图在magento的URL中添加变量。这是我的链接:
<?php echo Mage::helper("html")->getUrl("admin/index/test/".$testId); ?>
如果我在配置文件的末尾添加/,则url不与testd连接。但是如果没有在配置文件的末尾添加/就连接testd,那么它就不是连接变量id。这里是链接
<?php echo Mage::helper("html")->getUrl("admin/index/test".$testId); ?>
谁能描述一下我,我错过了什么? 有几个错误:
-
getUrl
的第一个参数必须是路由,格式为router/controller/action
。可以使用第二个参数 添加其他参数 admin
URL对应的路由器称为adminhtml
。Magento区分前名(URL的第一部分)和路由器(内部值),这使得自定义管理URL成为可能。这是在app/code/core/Mage/Adminhtml/etc/config.xml
中配置的:<routers> <adminhtml> <use>admin</use> <args> <module>Mage_Adminhtml</module> <frontName>admin</frontName> </args> </adminhtml> </routers>
路由的最后一部分可以在URL中提交,如果它们是"索引",那么对于URL
/admin
,路由是adminhtml/index/index
。但是一旦你想要添加参数,所有的部分都是必需的,以区分控制器和动作的参数。看起来您想要将参数test=$testId
添加到现有路由adminhtml/index/index
中,该路由将重定向到配置的起始页面(默认为adminhtml/dashboard/index
),或者在未登录时重定向到登录页面。 对于管理url,您需要使用
adminhtml
帮助器(或adminhtml/url
模型)要获取URL admin/index/index/test/$testId
,第一个参数必须是adminhtml/index/index
,第二个参数必须是['test' => $testId]
echo Mage::helper("adminhtml")->getUrl("adminhtml/index/index", ['test' => $testId]);
另如果您想用admin?test=$testId
形式的GET参数构建URL,您可以使用_query
参数:
echo Mage::helper("adminhtml")->getUrl("adminhtml/index/index",
['_query' => ['test' => $testId]]);
试试这个
echo Mage::helper("adminhtml")->getUrl("adminhtml/index/index",array('test'=>$testId));