Php Magento模型类重写不起作用
我试图扩展Amazon Payments Magento模块中Service/Login.php模型中的Creativestyle\u AmazonPayments\u Model\u Service\u Login类 我有自己的模块,我已经编写了该模块来修补该模块中的一些东西,但到目前为止,它们已经被块类重写和布局XML更改 为了实现这一点,我在我的config.xml中添加了:Php Magento模型类重写不起作用,php,xml,magento,Php,Xml,Magento,我试图扩展Amazon Payments Magento模块中Service/Login.php模型中的Creativestyle\u AmazonPayments\u Model\u Service\u Login类 我有自己的模块,我已经编写了该模块来修补该模块中的一些东西,但到目前为止,它们已经被块类重写和布局XML更改 为了实现这一点,我在我的config.xml中添加了: <models> <amazonpayments>
<models>
<amazonpayments>
<rewrite>
<service_login>Glambert_AmazonPayments_Model_Service_Login</service_login>
</rewrite>
</amazonpayments>
</models>
据我所知,这足以让LoginController.php在执行Mage::getModel('amazonpayments/service_login')时调用这个类;但它似乎不起作用
为了进行调试,我在getGroupedClassName方法中添加了一些登录到app/code/core/Mage/core/Model/Config.php的内容,以查看当我们获取此模型时,$this->_xml->global->{$groupType.s'}->{$group}返回的内容,但重写没有显示,仅此而已:
Mage_Core_Model_Config_Element Object
(
[class] => Creativestyle_AmazonPayments_Model
[rewrite] => Mage_Core_Model_Config_Element Object
(
[checkout] => ThirdParty_Module_Model_AmazonPayments_Checkout
)
)
然后我想我会添加。。。将my config.xml中的行添加到第三方的config.xml中,查看是否将其添加到数组中,然后。。。那也没用
作为测试人员,我在getGroupedClassName方法中添加了这一行:
if($class == 'service_login') $config->rewrite->$class = 'Glambert_AmazonPayments_Model_Service_Login';
这确实执行了我的代码。这让我觉得config.xml文件有问题吗
更新:看起来整个模块Glambert\u AmazonPayments不工作。这是在一个开发分支上测试从1.13.1到1.14的升级,模块在1.13.1上运行良好,但在1.14上运行不正常,除了这一个更改之外,没有任何更改重写模型我的修复方法是在配置->高级->高级中禁用模块,然后重新启用它,然后它就工作了。我不知道这为什么有效,但它确实有效
if($class == 'service_login') $config->rewrite->$class = 'Glambert_AmazonPayments_Model_Service_Login';