Magento2 Magento 2覆盖Magento签出模型购物车更新功能

Magento2 Magento 2覆盖Magento签出模型购物车更新功能,magento2,Magento2,我需要重写\Magento\Checkout\Model\Cart中的updateItems函数 还需要在_构造参数中传递我的自定义助手类。这是override类的我的构造函数 namespace Vendor\Module\Model; use Magento\Catalog\Api\ProductRepositoryInterface; use Magento\Checkout\Model\Session; Class Cart extends \Magento\Checkout\Model

我需要重写\Magento\Checkout\Model\Cart中的updateItems函数 还需要在_构造参数中传递我的自定义助手类。这是override类的我的构造函数

namespace Vendor\Module\Model;
use Magento\Catalog\Api\ProductRepositoryInterface;
use Magento\Checkout\Model\Session;
Class Cart extends \Magento\Checkout\Model\Cart
{
public function __construct(\Magento\Framework\Event\ManagerInterface $eventManager,
                            \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
                            \Magento\Store\Model\StoreManagerInterface $storeManager,
                            \Magento\Checkout\Model\ResourceModel\Cart $resourceCart, Session $checkoutSession, \Magento\Customer\Model\Session $customerSession, \Magento\Framework\Message\ManagerInterface $messageManager, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\CatalogInventory\Api\StockStateInterface $stockState, \Magento\Quote\Api\CartRepositoryInterface $quoteRepository, ProductRepositoryInterface $productRepository,
                            \Vendor\Module\Helper\Data $helper, array $data = []
                            )
{
    $this->helper = $helper;
    parent::__construct($eventManager, $scopeConfig, $storeManager, $resourceCart, $checkoutSession, $customerSession, $messageManager, $stockRegistry, $stockState, $quoteRepository, $productRepository, $data);

}
}

在此之后,我运行setup:upgrade、compile和staticcontentdeploy命令。同时删除var.中的所有文件夹,但当我在_构造函数中传递参数时。它不起作用。它显示空白页。当我从_构造函数中删除参数时。然后页面正在加载。

如果您想从checkout cart model类中重写
updateItems
,则必须在模块
di.xml
文件中添加
首选项
,如下所示:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Checkout\Model\Cart" type="[Vendor_Name]\[Module_Name]\Model\Cart" />
</config>
<?php
namespace [Vendor_Name]\[Module_Name]\Model;

use Magento\Checkout\Model\Cart as MagentoCart;
use [Vendor_Name]\[Module_Name]\Helper\Data;

class Cart extends MagentoCart
{
    protected $helper;

    public function __construct(Data $helper)
    {
        $this->helper = $helper;
    }

    // Code ...
}

然后编译依赖项,仅此而已。阅读本文了解更多有关

的信息嗨,谢谢你的回复。我正是这样做的。但是显示的是空白的白色页面。从app/bootstrap.php文件中启用显示错误,并检查确切的错误是什么hi@adeel我已启用显示错误。这是显示致命错误的错误:第75Perfect行的/var/www/html/projectname/vendor/magento/framework/ObjectManager/Factory/Compiled.php中允许的内存大小为134217728字节(尝试分配1368064字节),现在只需增加php.ini文件中的内存限制,即可正常工作,并重新启动服务器,但如果它不起作用,请尝试运行以下命令php-dmemory\u limit=-1 bin/magento setup:upgrade,对于编译命令php-dmemory\u limit=5G bin/magento setup:di:compilefordeployment,运行以下命令:php-dmemory\u limit=5G bin/magento setup:static content:deploy如果问题没有得到解决,您还可以将5G改为max。顺便说一句,我更喜欢使用命令,而不是直接更改为php.ini