2013-05-26 3 views
3

Je sais que je dois manquer quelque chose d'évident ici .. Mais je ne peux tout simplement pas voir ce qui manque. J'ai ajouté une nouvelle action de masse personnalisée dans la grille des clients via un observateur avec le code suivant:Magento Mass action URL résultats dans 404

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 
       ) 
      ) 
     )); 
    } 
} 

Cela fonctionne très bien. L'action apparaît. Cependant après avoir cliqué sur Valider, je reçois le frontend 404. En config.xml je:

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

et le contrôleur lui-même est stocké dans: /app/code/community/Tweakmag/CustomerApproval/controllers/Customerapproval.php

et a le code suivant:

class Tweakmag_CustomerApproval_CustomerapprovalController extends Mage_Adminhtml_Controller_Action 

{

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

}

avoir éclairci le cache,/connecté etc. Aide, très apprécié, je peux continuer à profiter du week-end :) Merci Adam

+0

RÉSOLU! et comme suspecté. Était une erreur simple. Le nom de fichier du contrôleur était incorrect. Devrait être CustomerapprovalController.php – tweakmag

Répondre

0

La cause la plus commune de 404 routes dans Magento est un mal nommé fichier du contrôleur. Le code de débogage dans la méthode _validateControllerClassNameapp/code/core/Mage/Core/Controller/Varien/Router/Standard.php est le meilleur moyen de voir quel fichier de contrôleur Magento essaie de charger manuellement, ce qui indiquera généralement comment votre fichier est nommé de manière incorrecte.