0

我正在研究 Magento 中的 massgrid 选项。问题是我的 indexController 没有被加载。我认为我的类的声明存在问题。

这是我的 config.xml

<config>
    <global>
        <blocks>
            <adminhtml>
                <rewrite>
                    <sales_order_grid>Comp_Dhl_Block_Sales_Order_Grid</sales_order_grid>
                </rewrite>
                <events>
                    <core_block_abstract_prepare_layout_before>
                        <observers>
                            <Dhl_core_block_abstract_prepare_layout_before>
                                <class>Dhl/observer</class>
                                <method>addMassAction</method>
                            </Dhl_core_block_abstract_prepare_layout_before>
                        </observers>
                    </core_block_abstract_prepare_layout_before>
                </events>
            </adminhtml>
        </blocks>
        <admin>
        <routers>
            <todhl>
                <use>admin</use>
                <args>
                    <module>Comp_Dhl</module>
                    <frontName>todhl</frontName>
                </args>
            </todhl>
        </routers>
    </admin>
    </global>
</config>

这是我的 Grid.php

class Comp_Dhl_Block_Sales_Order_Grid extends Mage_Adminhtml_Block_Sales_Order_Grid
{   
    protected function _prepareMassaction()
    {
        parent::_prepareMassaction();

        $this->getMassactionBlock()->addItem(
            'to_dhl',
            array('label' => $this->__('Sent to [DHL]'),
                  'url'   => $this->getUrl('/*/*/toDhl'),
            )
        );
    }
}

批量选项:“发送到 [DHL]”显示正常。因为我的网址中有这个:$this->getUrl('/*/*/toDhl')我必须添加:public function toDhlAction()到我的 indexController.php

我的 indexController.php 看起来像:

class Comp_Dhl_IndexController extends Mage_Adminhtml_Controller_Action
{
    public function toDhlAction(){      
        mail('to@me.com', 'controller works', 'the mass action controller works');
        $this->_redirect('*/*/index');
    }
}

这就是问题所在,因为我没有收到 indexController.php 应该触发的电子邮件。

有什么想法吗?

4

0 回答 0