2012-11-12 4 views
12

cerco di overriddeMagento Resource esclusione dei clienti modello

app\code\core\Mage\Customer\Model\Resource\Customer.php 

con questo xml:

<models> 
    <customer_resource> 
     <rewrite> 
      <customer>My_Company_Model_Resource_Customer</customer> 
     </rewrite> 
    </customer_resource>  
</models> 

ma ho

Mage registry key "_resource_singleton/customer/customer" already exists 

e con

 <customer> 
      <rewrite> 
       <customer_resource>My_Company_Model_Resource_Customer</customer_resource> 
      </rewrite> 
     </customer> 

o

<models> 
     <customer> 
      <rewrite> 
       <resource_customer>My_Company_Model_Resource_Customer</resource_customer> 
      </rewrite> 
     </customer> 
    </models> 

non succede nulla

risposta

26

Si dovrebbe essere in grado di realizzare con il codice che avevi. Se non viene sovrascritto, prova alcune delle nozioni di base come assicurarti di aver svuotato la cache. Se ancora non funziona, potresti combattere con un altro modulo che lo sta già sovrascrivendo. In tal caso si avrebbe bisogno di capire i passi successivi capire quale vince: unire logica, riscrivere/estendere l'altro, ecc

<models> 
    <customer_resource> 
     <rewrite> 
      <customer>My_Company_Model_Resource_Customer</customer> 
     </rewrite> 
    </customer_resource> 
</models> 
+0

grazie ... ho appena avuto il nome del modulo sbagliato – wutzebaer

5

l'ho fatto (in 1.7.0.2) con la seguente codice XML:

<?xml version="1.0" encoding="UTF-8" ?> 
<config> 
<modules> 
    <Final_Dummy> 
     <version>0.0.1</version> 
    </Final_Dummy> 
</modules> 
<frontend> 
    <routers> 
     <dummy> 
      <use>standard</use> 
      <args> 
       <module>Final_Dummy</module> 
       <frontName>dummy</frontName> 
      </args> 
     </dummy> 
    </routers> 
</frontend> 
<global> 
    <helpers> 
     <dummy> 
      <class>Final_Dummy_Helper</class> 
     </dummy> 
    </helpers> 
    <models> 
     <dummy> 
      <class>Final_Dummy_Model</class> 
      <resourceModel>dummy_resource</resourceModel> 
     </dummy> 
     <dummy_rsource> 
      <class>Final_Dummy_Model_Resource</class> 
      <deprecatedNode>dummy_mysql4</deprecatedNode> 
     </dummy_rsource> 
     <customer_resource> 
      <rewrite> 
       <customer>Final_Dummy_Model_Resource_Customer</customer> 
      </rewrite> 
     </customer_resource> 
    </models> 
</global> 
</config> 

e al fine di assicurarsi che funziona davvero ho creato la seguente classe:

<?php 
class Final_Dummy_Model_Resource_Customer extends Mage_Customer_Model_Resource_Customer{ 
    public function amIHere(){ 
     return 'Yes sir'; 
    } 
} 
?> 

e chiamai la risorsa controller del mio modulo come questo

0.123.
<?php 
class Final_Dummy_IndexController extends Mage_Core_Controller_Front_Action{ 
    public function indexAction(){ 
     $res=Mage::getResourceModel('customer/customer'); 
     die($res->amIHere()); 
    } 
} 
?> 

e il risultato è stato:

Sissignore

Spero che questi codice di aiuto in qualche modo. ricorda di svuotare la cache e raccomando che in fase di sviluppo, disabiliti il ​​compilatore Magento.