我正在研究 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 应该触发的电子邮件。
有什么想法吗?