如何重定向到Magento中的动作?

时间:2010-09-29 23:44:43

标签: magento router

HI,

我正在尝试为自定义模块创建一个路由器。

我想通过url / hotsale访问索引控制器的hotsale操作。所以我在我的模块的config.xml中创建了以下路由器xml。

<hotsale>
 <use>standard</use>
 <args>
  <module>Moon_Products</module>
  <frontName>hotsale</frontName>
 </args>
</hotsale>

当我访问url / hotsale时,它会转到索引控制器的索引操作。如何让它执行hotsale操作?

我尝试添加hotsale,但它没有用。

我接受了Alan Storm的建议,并以下面的代码结束。

public function indexAction()
{
    if($this->getRequest()->getRouteName() == 'hotsale'){

        $this->loadLayout();    

        $block = $this->getLayout()->createBlock(
            'Mage_Core_Block_Template',
            'my_block_name_here',
            array('template' => 'moon/hotsale.phtml')
        );


        $this->getLayout()->getBlock('root')->setTemplate('page/product-without-rightbar.phtml');
        $this->getLayout()->getBlock('content')->append($block);

        $this->renderLayout();

    }
}

1 个答案:

答案 0 :(得分:2)

默认前端/商店路由就像这样工作

http://example.com/front-name/controller-name/action-name

所以,当你去

http://example.com/hostsale

你真的在说

http://example.com/hostsale/index/index

前端概念有点抽象,但实际上是将URL绑定到特定模块。

因此,如果IndexController.php的方法名为hotsaleAction,并且您想要执行此方法,请使用表单中的网址

http://example.com/hotsale/index/hotsale