Lỗi cấu hình quản trị viên: Chỉ mục không xác định: id trong Iterator.php trên dòng 59


16

Ai đó có thể vui lòng giải thích lỗi này cho tôi?

Exception #0 (Exception): Notice: Undefined index: id in /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php on line 59
    #0 /home/staging/vendor/magento/module-config/Model/Config/Structure/Element/Iterator.php(59): Magento\Framework\App\ErrorHandler->handler(8, 'Undefined index...', '/home/asconveyo...', 59, Array)
    #1 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(92): Magento\Config\Model\Config\Structure\Element\Iterator->setElements(Array, 'default')
    #2 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(24): Magento\Config\Model\Config\Structure->getTabs()
    #3 /home/staging/vendor/magento/module-config/Model/Config/Structure.php(135): Magento\Config\Model\Config\Structure\Interceptor->getTabs()
    #4 /home/staging/var/generation/Magento/Config/Model/Config/Structure/Interceptor.php(63): Magento\Config\Model\Config\Structure->getFirstSection()
    #5 /home/staging/vendor/magento/module-config/Controller/Adminhtml/System/AbstractConfig.php(57): Magento\Config\Model\Config\Structure\Interceptor->getFirstSection()
    #6 /home/staging/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Config\Controller\Adminhtml\System\AbstractConfig->dispatch(Object(Magento\Framework\App\Request\Http))
    #7 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->___callParent('dispatch', Array)
    #8 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Config\\...', 'dispatch', Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Array, 'adminAuthentica...')
    #9 /home/staging/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(143): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
    #10 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
    #11 /home/staging/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Config\\...', 'dispatch', Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Array, 'adminMassaction...')
    #12 /home/staging/vendor/magento/module-backend/App/Action/Plugin/MassactionKey.php(33): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
    #13 /home/staging/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Backend\App\Action\Plugin\MassactionKey->aroundDispatch(Object(Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
    #14 /home/staging/var/generation/Magento/Config/Controller/Adminhtml/System/Config/Index/Interceptor.php(39): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->___callPlugins('dispatch', Array, Array)
    #15 /home/staging/vendor/magento/framework/App/FrontController.php(55): Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
    #16 /home/staging/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
    #17 /home/staging/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
    #18 /home/staging/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
    #19 /home/staging/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
    #20 /home/staging/vendor/magento/framework/Interception/Interceptor.php(142): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
    #21 /home/staging/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
    #22 /home/staging/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
    #23 /home/staging/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
    #24 /home/staging/index.php(42): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
    #25 {main}

Xin chào, Bạn đã cài đặt bất kỳ tiện ích mở rộng mới?
Meetanshi

Có thể là lỗi trong mô-đun xml của bạn (system.xml, acl.xml, v.v.) dán mã của bạn nếu bạn có thể.
Chander Shekhar

Có vấn đề tương tự, sau khi cài đặt github.com/mageplaza/magento-2-better-popup tiện ích mở rộng bằng cách tải xuống. Nhưng khi cài đặt qua trình soạn thảo, nó hoạt động tốt. Tôi cần thay đổi chức năng của nó, đó là lý do tại sao nhà soạn nhạc không thể cài đặt. Bất cứ ai đã giải quyết điều này?
Ajwad Syed

Câu trả lời:


29

Tôi đã gặp phải một vấn đề tương tự và trong trường hợp của tôi, vấn đề là do tôi có id tab không khớp trong system.xml

<tab id="custom_tab" translate="label" sortOrder="2000">
            <label>Custom Tab</label>
        </tab>
        <section id="custom_section" translate="label" type="text" sortOrder="40" showInDefault="1" showInWebsite="1" showInStore="1">
            <class>separator-top</class>
            <label>Custom Section</label>
            <tab>customtab</tab>

Để khắc phục sự cố, tôi đã thay đổi
<tab>customtab</tab>
thành
<tab>custom_tab</tab>


Xin chào @Anshu Mishra, câu trả lời trên có ích cho tôi, nhưng khi tôi từ chối mô-đun từ phía quản trị viên thì nó không bị mất.
shivashankar m

7

Một cách dễ dàng để gỡ lỗi là: duyệt và mở nhà cung cấp / magento / module-config / Model / Config / Struct / Element / Iterator.php

thay đổi

public function setElements(array $elements, $scope)
    {
        $this->_elements = $elements;
        $this->_scope = $scope;
        if (count($elements)) {
            $lastElement = end($elements);
            $this->_lastId = $lastElement['id'];
        }
    }

đến

public function setElements(array $elements, $scope)
    {
        $writer = new \Zend\Log\Writer\Stream(BP . '/var/log/config_debug.log');
        $logger = new \Zend\Log\Logger();
        $logger->addWriter($writer);

        $this->_elements = $elements;
        $this->_scope = $scope;

        $logger->info($elements);

        if (count($elements)) {
            $lastElement = end($elements);
            $this->_lastId = $lastElement['id'];
        }
    }

Tải lại cửa sổ cấu hình trình duyệt và xem lỗi một lần nữa.

Kiểm tra tệp var / log / config_debug.log.

Đi đến phần dưới cùng của tệp và xem mô-đun nào bị lỗi, nó dừng ở đâu.

Đó là một trong những nguyên nhân gây ra vấn đề của bạn.

Đừng quên khôi phục các thay đổi của bạn sau khi đã sửa.


5

Trong trường hợp của tôi, lỗi được ném vì tab được xác định trong mô-đun bị vô hiệu hóa, nhưng được sử dụng trong một mô-đun khác được bật. Vì vậy, tôi khuyên bạn nên kiểm tra tab nào không có idtrong lớp được chỉ định:

ví dụ gỡ lỗi

Sau đó, tìm kiếm tên đó theo toàn bộ dự án (trong system.xmltệp) và kiểm tra xem mô-đun đó có được bật không.

PS : không có lỗi trên ảnh chụp màn hình, nhưng thực sự nó đã bị DeliveryTimemô-đun kích hoạt, vì Coremô-đun bị vô hiệu hóa khi tôi cố truy cập trang cấu hình cửa hàng.


3

Trong trường hợp của tôi, tôi đã cài đặt https://www.mageplaza.com/magento-2store-credit/ gia hạn, nhưng không được cài đặt mô-đun lõi của Mageplaza.

Tôi thấy rằng đã <tab>mageplaza</tab>đề cập đến system.xmlnhưng tab không được xác định trong tệp này. Vì vậy, đã cài đặt mô-đun lõi cho Mageplaza từ https://github.com/mageplaza/module-core và nó hoạt động tốt.


Cảm ơn @nalin savaliya
Pradip Garchar

Tương tự ở đây, ngoại trừ việc tôi đã cài đặt mô-đun thông qua Trình soạn thảo, nhưng nó không được bật. bin/magento module:enable Mageplaza_CoreĐã sửa mà.
Thomas Luzat

1

Tôi cũng đã phải đối mặt với vấn đề này trong magento2. Đây là tệp system.xml của tôi


<tab id="cnet" translate="label" sortOrder="10">
            <label>CNET</label>
        </tab>
        <section id="cnet" translate="label" sortOrder="130" showInDefault="1" showInWebsite="1" showInStore="1">
            <class>separator-top</class>
            <label>General Information</label>
            <tab>cnet</tab>
Please change tab id = "cnet" and <tab>cnet</tab>.
If its not matching error will be occur. After change this one run the "sudo php bin/magento setup:di:compile"

0

Vấn đề này đang đến vì system.xml. Vui lòng sửa theo như bên dưới, tab hệ thống của bạn id = " custom_tab " dịch = "nhãn" sortOrder = "10"> Và tên tab trong phần phải giống nhau.

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.