Php 重写Magento_GroupedProduct模型时,找不到Magento 2类错误

Php 重写Magento_GroupedProduct模型时,找不到Magento 2类错误,php,class,overriding,magento2,extend,Php,Class,Overriding,Magento2,Extend,我在Magento 2.2.2中创建了一个自定义模块,它扩展了\Magento\GroupedProduct\Model\Product\Type\Grouped类 该模块已成功安装并在网站上启用,但是,我收到一个PHP致命错误:未捕获错误:在../vendor/magento/framework/ObjectManager/Factory/AbstractFactory.PHP:111中找不到类“ExtraMile\Catalog\Model\Grouped” 我的模块文件夹结构如下: 模块文

我在Magento 2.2.2中创建了一个自定义模块,它扩展了\Magento\GroupedProduct\Model\Product\Type\Grouped类

该模块已成功安装并在网站上启用,但是,我收到一个PHP致命错误:未捕获错误:在../vendor/magento/framework/ObjectManager/Factory/AbstractFactory.PHP:111中找不到类“ExtraMile\Catalog\Model\Grouped”

我的模块文件夹结构如下:

模块文件夹结构的图像

di.xml文件包含:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'ExtraMile_GroupedProduct',
__DIR__
);
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
  <module name="ExtraMile_GroupedProduct" setup_version="1.0.2">
    <sequence>
        <module name="Magento_GroupedProduct"/>
    </sequence>
  </module>
</config>
<?php
namespace ExtraMile\GroupedProduct\Model;

class Grouped extends \Magento\GroupedProduct\Model\Product\Type\Grouped
{
  public function getAssociatedProducts($product)
  {
    if (!$product->hasData($this->_keyAssociatedProducts)) {
        $associatedProducts = [];

        $this->setSaleableStatus($product);

        $collection = $this->getAssociatedProductCollection(
            $product
        )->addAttributeToSelect(
            ['name', 'price', 'special_price', 'special_from_date', 'special_to_date', 'tax_class_id']
        )->addFilterByRequiredOptions()->setPositionOrder()->addStoreFilter(
            $this->getStoreFilter($product)
        )->addAttributeToFilter(
            'status',
            ['in' => $this->getStatusFilters($product)]
        );

        foreach ($collection as $item) {
            $associatedProducts[] = $item;
        }

        $product->setData($this->_keyAssociatedProducts, $associatedProducts);
    }
    return $product->getData($this->_keyAssociatedProducts);
  }
}
问题已解决:

我通过将模块文件夹从
app/design/frontend/
移动到
code/
中解决了这个问题


运行
bin/magento安装程序:di:compile
,然后删除类未找到错误。

它已将
Catalog
插入到您的命名空间中。这可能是
di
配置错误。。。为什么文件中有PHP,或者这是您问题中的一个错误?它应该是XML,不是吗?is应该指定模型的映射/加载以替换核心模型。