Magento 2 Yönetici sistem yapılandırmasında tablo ayarı nasıl oluşturulur?


9

Magento 1'e göre, şöyle bir tablo oluşturmak için "adminhtml / system_config_backend_serialized_array" dan genişleriz: resim açıklamasını buraya girin

Sorum şu: Magento 2'de nasıl yaratıyoruz?

Düzenleme: Son olarak, @Marius yardımı ile: System => Configuration => General => Design => Design Theme içindeki User-Agent Exceptions alanıdır.

resim açıklamasını buraya girin

"Magento \ Config \ Block \ System \ Config \ Form \ Field \ Regexceptions" kodlarına bakarak bu alana dayalı yeni bir tablo yapılandırması oluşturabiliriz.


Bu magento.stackexchange.com/questions/86147/… içine bakmak yardımcı olacaktır
Bojjaiah

Teşekkür ederim. Ama @Marius'un cevabı ihtiyacım olan şey.
thienphucvx

Yanıtlar:


16

Bunu, Şirket / Modülename / etc / adminhtml / system.xml komutunu kullanarak yapabilirsiniz.

Bölüm -> Grup alanı altında

<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>

Blok içindeki ön uç model dosyasında,

<?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();
    }

}

Konfigürasyon alanında tablonuz var ve değerini kaydettikten sonra core_config_datatablonun içine kaydediliyor .


iyi çalışıyor. Ben gibi tasarruf Ama <test>bunun görüntülüyor &lt;test2&gt;. Herhangi bir öneri?
Bojjaiah

Merhaba, şüphe, ben aynı alanlardan oluşan başka bir grup eklemek isterseniz, ön uç modeli, sistem.xml içinde eklediğiniz arka uç modeli sonra nasıl aynı system.xml dosyası ile başka bir grup eklerim. yeni grup eklerken, şablon düzgün yüklenip yüklenmeyeceğini?
Jaisa

@Rakesh Jesadiya, Lütfen bir göz atın ve cevap verin magento.stackexchange.com/questions/212229/…
Jaisa

merhaba @rakesh Jesadiya, ben yukarıdaki kodu kullanarak alanlar ekledim ama kaydedemiyorum ve konsol alanında (adet) tanımlı hata var.
faizanbeg

Bu yönetici yapılandırma tablosundaki satırları programlı olarak nasıl oluşturabilirim?
Ashwani Shukla

4

adminhtml/system_config_backend_serialized_arrayMagento 2 için eşdeğerdir Magento\Config\Model\Config\Backend\Serialized\ArraySerialized.
Örnek olarak alanın User-Agent Exceptionsyapılandırmasını alabilir ve çoğaltmayı deneyebilirsiniz.
Alan,Magento/Backend/etc/adminhtml/system.xml


Evet. Tam olarak aradığım şey bu. Çok teşekkür ederim.
thienphucvx

merhaba marius, ben $ this-> addColumn ('değer', ['label' => __ ('Değer')]); $ this-> addColumn ('adet', ['etiket' => __ ('Adet')]); ancak kaydedilemiyor ve konsol alanında hata var (adet) tanımlı değil Lütfen yardım edin
faizanbeg
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.