Magento 2 Як створити налаштування таблиці в конфігурації системи адміністратора?


9

Відповідно до magento 1, ми розширюємо від "adminhtml / system_config_backend_serialized_array" для створення такої таблиці: введіть тут опис зображення

Моє запитання: як ми створюємо його в magento 2?

Редагування: Нарешті, за допомогою довідки @Marius: це поле Виключення з користувачем-агентом у System => Configuration => General => Design => Theme Design.

введіть тут опис зображення

На основі цього поля ми можемо створити нову конфігурацію таблиці, переглянувши її коди "Magento \ Config \ Block \ System \ Config \ Form \ Field \ Поле \ Regexceptions"


погляньте на цей magento.stackexchange.com/questions/86147/…, це допоможе
Bojjaiah

Дякую. Але я думаю, що відповідь від @Marius - це те, що мені потрібно.
thienphucvx

Відповіді:


15

Ви можете це зробити, використовуючи, Company / Modulename / etc / adminhtml / system.xml

Під розділом -> групове поле

<field id="mapping" translate="label comment tooltip" sortOrder="80" showInDefault="1" showInWebsite="1" showInStore="0">
    <label>Customer Fields Mapping</label>
    <frontend_model>Company\Modulename\Block\Adminhtml\System\Config\Form\Field\Customermap</frontend_model>
    <backend_model>Magento\Config\Model\Config\Backend\Serialized\ArraySerialized</backend_model>
    <comment>
        <![CDATA[Add the comments!]]>
    </comment>
    <tooltip>Map the magento customer field to custom module merge_fields</tooltip>
</field>

У файлі моделі фронтену всередині блоку,

<?php
namespace Company\Modulename\Block\Adminhtml\System\Config\Form\Field;

class Customermap extends \Magento\Config\Block\System\Config\Form\Field\FieldArray\AbstractFieldArray
{
    /**
     * @var \Magento\Framework\Data\Form\Element\Factory
     */
    protected $_elementFactory;

    /**
     * @param \Magento\Backend\Block\Template\Context $context
     * @param \Magento\Framework\Data\Form\Element\Factory $elementFactory
     * @param array $data
     */
    public function __construct(
        \Magento\Backend\Block\Template\Context $context,
        \Magento\Framework\Data\Form\Element\Factory $elementFactory,
        array $data = []
    )
    {
        $this->_elementFactory  = $elementFactory;
        parent::__construct($context,$data);
    }
    protected function _construct()
    {
        $this->addColumn('field1', ['label' => __('Field1')]);
        $this->addColumn('field2', ['label' => __('FIeld2')]);
        $this->_addAfter = false;
        $this->_addButtonLabel = __('Add');
        parent::_construct();
    }

}

У вас є таблиця відображення в області конфігурації, і після збереження її значення зберігаються всередині core_config_dataтаблиці.


це працює чудово. Але коли я економлю, як <test>це відображається &lt;test2&gt;. Будь-яка пропозиція?
Боджая

Привіт, сумніваюся, якщо я хочу додати ще одну групу, яка складається з тих же полів, модель фронтену, модель задніх місць, яку ви додали у свою систему.xml, то як додати ще одну групу з тим самим файлом system.xml. додаючи нову групу, чи правильно вона завантажить шаблон?
Джайса

@Rakesh Jesadiya. Подивіться, будь ласка, відповідь magento.stackexchange.com/questions/212229/…
Jaisa

привіт @rakesh Jesadiya, я додав поля з використанням вищевказаного коду, але не в змозі зберегти, і в консольному полі (qty) помилка не визначена.
faizanbeg

Як програмно створити рядки в цій таблиці конфігурації адміністратора?
Ашвані Шукла

4

Еквівалент adminhtml/system_config_backend_serialized_arrayу Magento 2 є Magento\Config\Model\Config\Backend\Serialized\ArraySerialized.
Ви можете взяти за приклад поле User-Agent Exceptionsз конфігурації та спробувати його повторити.
Поле визначено вMagento/Backend/etc/adminhtml/system.xml


Так. Це саме те, що я шукаю. Дуже дякую.
thienphucvx

привіт @marius, я додав поля, використовуючи код $ this-> addColumn ('value', ['label' => __ ('Value')]); $ this-> addColumn ('qty', ['label' => __ ('Qty')]); але не вдається зберегти, і в консольному полі є помилка (кількість) не визначено. Будь ласка, допоможіть
faizanbeg
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.