Magento 2 Come creare le impostazioni della tabella nella configurazione del sistema di amministrazione?


9

Secondo magento 1, estendiamo da "adminhtml / system_config_backend_serialized_array" per creare una tabella come questa: inserisci qui la descrizione dell'immagine

La mia domanda è: come lo creiamo in magento 2?

Modifica: Infine, con l'aiuto di @Marius: è il campo Eccezioni User-Agent in System => Configuration => General => Design => Design Theme.

inserisci qui la descrizione dell'immagine

Possiamo creare una nuova configurazione di tabella basata su questo campo guardando i suoi codici "Magento \ Config \ Block \ System \ Config \ Form \ Field \ Regexceptions"



Grazie. Ma penso che la risposta di @Marius sia ciò di cui ho bisogno.
thienphucvx,

Risposte:


14

Puoi farlo usando, Azienda / Nome modulo / etc / adminhtml / system.xml

Nella sezione -> campo gruppo

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

Nel file modello frontend all'interno del blocco,

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

}

Hai una tabella di visualizzazione nell'area di configurazione e dopo aver salvato il suo valore vengono salvati all'interno della core_config_datatabella.


funziona benissimo. Ma quando salvo come <test>viene visualizzato &lt;test2&gt;. Qualche suggerimento?
Bojjaiah, il

Ciao, avendo dubbi, se desidero aggiungere un altro gruppo che comprende gli stessi campi, modello frontend, modello backend che hai aggiunto nel tuo system.xml, allora come posso aggiungere un altro gruppo con lo stesso file system.xml. durante l'aggiunta di un nuovo gruppo, se caricherà correttamente il modello?
Jaisa,

@Rakesh Jesadiya, dai un'occhiata e rispondi magento.stackexchange.com/questions/212229/…
Jaisa,

ciao @rakesh Jesadiya, ho aggiunto campi usando il codice sopra ma impossibile salvare e c'è un errore nel campo console (qtà) non definito.
faizanbeg,

Come creare le righe in questa tabella di configurazione dell'amministratore a livello di codice?
Ashwani Shukla,

4

L'equivalente di adminhtml/system_config_backend_serialized_arrayin Magento 2 è Magento\Config\Model\Config\Backend\Serialized\ArraySerialized.
Puoi prendere come esempio il campo User-Agent Exceptionsda config e provare a replicarlo.
Il campo è definito inMagento/Backend/etc/adminhtml/system.xml


Sì. È esattamente quello che sto cercando. Grazie mille.
thienphucvx,

ciao @marius, ho aggiunto campi usando il codice $ this-> addColumn ('value', ['label' => __ ('Value')]); $ this-> addColumn ('qty', ['label' => __ ('Qty')]); ma impossibile salvare e si è verificato un errore nel campo console (qtà) non definito Per favore aiuto
faizanbeg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.