在magento中如何连接url中的变量


How concatenate variable in url in magento

我试图在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));