Почему переопределение этого основного файла «Magento \ Quote \ Model \ ShippingMethodManagement.php» вызывает ошибки - PullRequest
0 голосов
/ 04 марта 2019

Я написал простой модуль для переопределения этого базового класса Model, но во внешнем интерфейсе он показывает следующее сообщение об ошибке:

"Неустранимая ошибка: Uncaught TypeError: Аргумент 3 передан Magento \ Quote \ Model \Quote \ ShippingAssignment \ ShippingProcessor :: __ construct () должен быть экземпляром Magento \ Quote \ Model \ ShippingMethodManagement, экземпляром shipping \ module \ Model \ ShippingMethodManagement \ Interceptor ..... "

ЗДЕСЬСодержимое файла '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\Quote\Model\ShippingMethodManagement" type="shipping\module\Model\ShippingMethodManagement" />
</config>

Ответы [ 4 ]

0 голосов
/ 26 июля 2019

После добавления нового аргумента в конструктор необходимо заново создать интерпретатор. Для этого выполните команду di: compile

php bin/magento setup:di:compile
0 голосов
/ 11 марта 2019

Вам необходимо выполнить следующие команды после получения полного разрешения:

chmod -R 777 var generated
php bin/magento setup:di:compile
php bin/magento cache:flush

Если ошибка все еще сохраняется, проверьте, находитесь ли вы в режиме разработчика, с помощью этой команды:

php bin/magento deploy:mode:show

установить врежим разработчика:

php bin/magento deploy:mode:set developer

после перехода в режим разработчика удалите var и сгенерированную папку,

rm -rf var generated

, затем очистите кэш:

php bin/magento cache:flush
chmod -R 777 var generated
0 голосов
/ 11 апреля 2019

Расширьте свой класс, используя основной путь к файлу, как указано ниже.

In ** shipping \ module \ Model **

class ShippingMethodManagement extends 
Magento\Quote\Model\ShippingMethodManagement
{
   //You can write your custom functionality here
}

Не забудьте выполнить следующие команды после изменения.

chmod -R 777 var generated
php bin/magento setup:di:compile
php bin/magento cache:flush
0 голосов
/ 04 марта 2019

Вам нужно сделать: -

php bin/magento s:up

и очистить кэш

...