vendor / magento /内のクラス名「Void」


9

私は使用して再コンパイルしようとしています

php bin / magento setup:di:compile

しかし、このコマンドを実行すると、次のようになります。

致命的エラー:9行目の/var/www/html/magento/vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.phpで予約されているため、クラス名として「Void」を使用できません

PHP 7.1.0-alphaを実行しています。

回答:



18

これを修正する方法は次のとおりです。

  1. vendor/magento/module-sales/etc/webapi.xml112行目を編集:

    - <route url="/V1/invoices/:id/void" method="POST">
    + <route url="/V1/invoices/:id/voidInvoice" method="POST">
    
  2. vendor/magento/module-sales/Block/Adminhtml/Order/Invoice/View.php242行目を編集:

    - return $this->getUrl('sales/*/void', ['invoice_id' => $this->getInvoice()->getId()]);
    + return $this->getUrl('sales/*/voidInvoice', ['invoice_id' => $this->getInvoice()->getId()]);
    
  3. vendor/magento/module-sales/Block/Adminhtml/Order/Creditmemo/View.php183行目を編集:

    - return $this->getUrl('sales/*/void', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    + return $this->getUrl('sales/*/voidCreditmemo', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    
  4. vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php9行目を編集:

    - class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    + class VoidInvoice extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    
  5. vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Void.php行10を編集:

    - class Void extends \Magento\Backend\App\Action
    + class VoidCreditmemo extends \Magento\Backend\App\Action
    
  6. リネーム

    vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Void.php

    vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/VoidCreditmemo.php

  7. リネーム

    vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.php

    vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/VoidInvoice.php

https://mage2.pro/t/topic/2433/2から取得



Magento Enterpriseのmv vendor / magento / module-reward / Model / Action / Creditmemo / Void.php vendor / magento / module-reward / Model / Action / Creditmemo / VoidCreditmemo.php in line 8クラスVoidをクラスVoidCreditmemoに変更
marcinsdance

@ KonstantinGerasimov、M230用のパッチはありますか?
Ravi Dudhara

2

コアのmagentoベンダーファイルを変更して問題を解決する代わりに、正しいphpバージョンを使用する方が理にかなっています。使用しているものに応じて、特定のphp binの場所にBASH構成を設定するのは簡単です。


1

これはMagento 2.2の問題ではなくなりました-Magento 2.1はPHP7.1互換ではありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.