Php 重写Magento_GroupedProduct模型时,找不到Magento 2类错误
我在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_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” 我的模块文件夹结构如下: 模块文
<?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应该指定模型的映射/加载以替换核心模型。