Lỗi Magento 2 Core được tìm thấy trong tất cả 2.1.x, 2.2


8

Các bước để tái sản xuất

  1. Chuyển đến Báo cáo -> Theo khách hàng

  2. Nhập tên khách hàng vào hộp tìm kiếm

  3. Bấm vào tìm kiếm

Nó sẽ hiển thị

Lỗi nghiêm trọng: Không tìm thấy cột: 1054 Cột không xác định 'customer_name' trong 'mệnh đề where', truy vấn là: CHỌN COUNT (DISTINCT chi tiết.customer_id) TỪ đánh giá AS main_table

Tôi đã tìm thấy lỗi này trong tất cả Magento 2.1.x. Và đăng vấn đề trên github

https://github.com/magento/magento2/issues/10602

Có ai có ý tưởng về điều này?

BIÊN TẬP:

Vấn đề này vẫn tiếp tục trong Magento 2.1.8, 2.2 và 2.2 EE


Có, thay thế chúng ta phải sử dụng firstnamethay vì customer_name. Becuase customer_namekhông khớp với bất kỳ bảng nào
Camit1dk

Bạn có bất kỳ bản vá có sẵn cho vấn đề này?
Hoàng tử Patel

Kiểm tra nhận xét của tôi trong liên kết bên dưới, github.com/magento/magento2/issues/10301
Camit1dk

Câu trả lời:


6

Đây là giải pháp ...

Tạo mô-đun mới

Nhà cung cấp / Mô-đun / etc / module.xml

<?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="Vendor_Module" setup_version="2.1.0">
        <sequence>
            <module name="Magento_Review"/>
        </sequence>
    </module>
</config>

Nhà cung cấp / Mô-đun / etc / adminhtml / 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\Reports\Block\Adminhtml\Review\Customer" type="Vendor\Module\Block\Adminhtml\Review\Customer" />
    <preference for="Magento\Reports\Model\ResourceModel\Review\Customer\Collection" type="Vendor\Module\Model\ResourceModel\Review\Customer\Collection" />
</config>

Nhà cung cấp / Mô-đun / Chặn / adminhtml / Đánh giá / Khách hàng.php

<?php

namespace Vendor\Module\Block\Adminhtml\Review;

class Customer extends \Magento\Reports\Block\Adminhtml\Review\Customer
{
    protected function _prepareLayout()
    {
        parent::_prepareLayout();

        $customerNameColumn = $this->getChildBlock('grid')
            ->getChildBlock('grid.columnSet')
            ->getChildBlock('customer_name');
        $customerNameColumn->setFilterIndex([
            'customer.firstname',
            'customer.lastname'
        ]);

        return $this;
    }
}

Nhà cung cấp / Mô-đun / Mô hình / ResourceModel / Đánh giá / Khách hàng / Bộ sưu tập.php

<?php
namespace Vendor\Module\Model\ResourceModel\Review\Customer;

class Collection extends \Magento\Reports\Model\ResourceModel\Review\Customer\Collection
{
    public function addFieldToFilter($field, $condition = null)
    {
        if (is_array($field) && array_key_exists('like', $condition)) {
            $condition = array_fill(0, count($field), $condition);
        }

        return parent::addFieldToFilter($field, $condition);
    }
}

Câu trả lời hay :) +1 cho bạn. Ngoài ra nếu tôi không tìm thấy câu trả lời nào trong vòng 6 ngày, tôi sẽ đưa ra ranh giới +50. Có tôi biết chúng ta có thể ghi đè tập tin lõi và giải quyết vấn đề này. Nhưng tôi không cần mô-đun bên ngoài cho nó, tôi cần bản vá cho mã kéo trên magento 2 github. Nếu bạn tìm thấy bất kỳ bản vá cho nó. bạn cũng có thể kéo mã trên kho lưu trữ github magento 2.
Hoàng tử Patel

bạn có thể tạo bản vá của riêng mình dựa trên mô-đun này, nhưng tôi không thích cách đó. bạn thay đổi mã lõi.
Nicholas Miller

Vâng, bạn đúng, chúng tôi không nên thay đổi cốt lõi nhưng điều này là để giúp Magento thực hiện vấn đề này trong phiên bản tiếp theo. Dù sao, tôi sẽ cố gắng tạo ra một bản vá cho nó.
Hoàng tử Patel

Ý tưởng của @ PrincePatel là hướng đi: cung cấp một bản vá cho lỗi này để cho phép nó được hợp nhất vào lõi -> bạn nên thử truy cập GitHub và thêm một lỗi.
Tối đa
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.