Magento2不能覆盖类Magento \ GroupedProduct \ Model \ Product \ Type \ Grouped?

时间:2016-08-25 02:58:26

标签: model magento2 override

我试图覆盖上面的类(Magento\GroupedProduct\Model\Product\Type\Grouped)

以下是我的app/code/Test/CustomGrouped/etc/adminhtml/di.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\GroupedProduct\Model\Product\Type\Grouped" type="Test\CustomGrouped\Model\Product\Type\Grouped"/>
</config>

以下是模型类app/code/Test/CustomGrouped/Model/Product/Type/Grouped.php

<?php
namespace Test\CustomGrouped\Model\Product\Type;

class Grouped extends \Magento\GroupedProduct\Model\Product\Type\Grouped
{
    public function getAssociatedProducts($product)
    {
        // Do something
    }
}

我通过代码调试,但它仍然使用我的重写代码进入核心类。我不想使用插件。我只是想知道在重写班级Magento\GroupedProduct\Model\Product\Type\Grouped

时我在这里缺少什么

任何建议都将不胜感激。

P.S。 :我已经检查过清除var文件夹中的缓存,生成等。但它没有奏效。我使用的是Magneto EE 2.1

1 个答案:

答案 0 :(得分:1)

修改文件app/code/Best/CustomGrouped/etc/module.xml以在核心模块为我工作后加载我的自定义模块。

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Best_customGrouped" setup_version="0.0.1" active="true">
        <sequence>
            <module name="Magento_GroupedProduct"/>
        </sequence>
    </module>
</config>

问题是我的自定义模块的命名空间以字母&#39; B&#39;开头。它被列在app/etc/config.xml中Magento的GroupedProduct模块之前。因此,我使用上面的代码强制我的模块加载到Magento之后。