Magento Mass Action URL结果为404

时间:2013-05-26 11:16:29

标签: magento

我知道我必须在这里遗漏一些明显的东西..但我看不出有什么遗漏。我通过观察者在客户网格中添加了一个新的自定义批量操作,代码如下:

public function addMassActions($observer) {
    $block = $observer->getEvent()->getBlock();
    if(get_class($block) =='Mage_Adminhtml_Block_Widget_Grid_Massaction'
        && $block->getRequest()->getControllerName() == 'customer')
    {
        $statuses = Mage::getSingleton('tmcustomerapproval/approvals')->getStatuses();
        $block->addItem('tmcustomerapproval', array(
            'label' => 'Set Customer Approval Status',
            'url' => Mage::getModel('adminhtml/url')->getUrl('adminhtml/customerapproval/index'),
            'additional'   => array(
                'visibility'    => array(
                    'name'     => 'status',
                    'type'     => 'select',
                    'class'    => 'required-entry',
                    'label'    => Mage::helper('tmcustomerapproval')->__('Status'),
                    'values'   => $statuses
                )
            )
        ));
    }
}

这很好用。行动出现了。但是在点击提交后我得到了前端404.在config.xml中我有:

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <Tweakmag_CustomerApproval after="Mage_Adminhtml">Tweakmag_CustomerApproval</Tweakmag_CustomerApproval>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

并且控制器本身存储在:/app/code/community/Tweakmag/CustomerApproval/controllers/Customerapproval.php

并具有以下代码:

class Tweakmag_CustomerApproval_CustomerapprovalController extends Mage_Adminhtml_Controller_Action

{

public function indexAction()
{
    $this->loadLayout();
    $this->renderLayout();
}

}

我已经清除缓存,登录/退出等帮助,非常感谢所以我可以继续享受周末:) 谢谢 亚当

1 个答案:

答案 0 :(得分:0)

Magento中404路由的最常见原因是一个名不副实的控制器文件。调试_validateControllerClassName方法app/code/core/Mage/Core/Controller/Varien/Router/Standard.php中的代码是查看Magento尝试手动自动加载的控制器文件的最佳方式,这通常会指向文件的错误命名方式。