Tên lớp 'Vô hiệu' bên trong nhà cung cấp / magento /


9

Tôi đang cố gắng biên dịch lại bằng cách sử dụng

Thiết lập php bin / magento: di: biên dịch

Nhưng khi tôi chạy lệnh này, tôi nhận được:

Lỗi nghiêm trọng: Không thể sử dụng 'Void' làm tên lớp vì nó được dành riêng trong /var/www/html/magento/vendor/magento/module-sales/Contoder/Adminhtml/Order/Invoice/Void.php trên dòng 9

Tôi đang chạy PHP 7.1.0-alpha.

Câu trả lời:



18

Đây là cách khắc phục:

  1. chỉnh sửa vendor/magento/module-sales/etc/webapi.xmldòng 112:

    - <route url="/V1/invoices/:id/void" method="POST">
    + <route url="/V1/invoices/:id/voidInvoice" method="POST">
    
  2. chỉnh sửa vendor/magento/module-sales/Block/Adminhtml/Order/Invoice/View.phpdòng 242:

    - return $this->getUrl('sales/*/void', ['invoice_id' => $this->getInvoice()->getId()]);
    + return $this->getUrl('sales/*/voidInvoice', ['invoice_id' => $this->getInvoice()->getId()]);
    
  3. chỉnh sửa vendor/magento/module-sales/Block/Adminhtml/Order/Creditmemo/View.phpdòng 183:

    - return $this->getUrl('sales/*/void', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    + return $this->getUrl('sales/*/voidCreditmemo', ['creditmemo_id' => $this->getCreditmemo()->getId()]);
    
  4. chỉnh sửa vendor/magento/module-sales/Controller/Adminhtml/Order/Invoice/Void.phpdòng 9:

    - class Void extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    + class VoidInvoice extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\View
    
  5. chỉnh sửa vendor/magento/module-sales/Controller/Adminhtml/Order/Creditmemo/Void.phpdòng 10:

    - class Void extends \Magento\Backend\App\Action
    + class VoidCreditmemo extends \Magento\Backend\App\Action
    
  6. đổi tên

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

    đến

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

  7. đổi tên

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

    đến

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

lấy từ https://mage2.pro/t/topic/2433/2


rất hoan nghênh ngài
Konstantin Gerasimov

trong Magento Enterprise mv vendor / magento / mô-đun-thưởng / mẫu / Hành động / Creditmemo / Void.php vendor / magento / mô-đun-thưởng / mẫu / Hành động / Creditmemo / VoidCreditmemo.php phù lớp 8 thay đổi Void đến lớp VoidCreditmemo
marcinsdance

@KonstantinGerasimov, Có bản vá nào cho M230 không?
Ravi Dudhara

2

Thay vì sửa đổi các tập tin nhà cung cấp magento cốt lõi để giải quyết vấn đề, việc sử dụng phiên bản php phù hợp sẽ có ý nghĩa hơn. Tùy thuộc vào những gì bạn đang sử dụng, việc đặt cấu hình BASH cho một vị trí bin php cụ thể là đủ dễ dàng.


1

Đây không còn là vấn đề đối với Magento 2.2 - Magento 2.1 không tương thích với PHP7.1.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.