$ this-> getRequest() - > getParam()在类别控制器中不起作用

时间:2014-05-13 09:44:37

标签: magento magento-1.7 magento-1.8

我正在努力从url

中恢复制造商属性

本地主机/ magento的/ index.php的/测试pro.html?制造商/ 4

所以我使用$this->getRequest()->getParam('manufacturer')

我没有得到任何输出。

但当我将网址更改为 localhost / magento / index.php / test-pro.html?manufacturer = 4 时 (/替换为=),我得到适当的输出。

但是我需要的网址应该是 localhost / magento / index.php / test-pro.html?manufacturer / 4

并希望获取与该制造商ID相关的产品。

有人帮助我。

1 个答案:

答案 0 :(得分:3)

在您的查询字符串中?manufacturer = 4 会为您提供manufacturer的值,即4,而制造商/ 4 将为您提供无价值不被视为查询字符串。

此外,参数将是制造商/ 4 ,而不是制造商

为了达到你的要求,你可以像下面这样做。

$currentUrl = 'localhost/magento/index.php/test-pro.html?manufacturer/4';
$parts = parse_url($currentUrl);
$val =  explode('/',$parts['query']);
Mage::register('manufacturer',$val[1]);
$menuVal = Mage::registry('manufacturer');
echo $menuVal; //prints 4

这是一个示例代码,即使您使用/代替=,也可以通过该示例代码获取查询字符串值。