Şu yazıyı okuyorsunuz: Magento 2 Admin’de system.xml kullanılarak dinamik alan nasıl eklenir?
ad alanı Sağlayıcı\Modül\Block\Adminhtml\Config\Backend;
Magento\Framework\App\Cache\TypeListInterface’i kullanın;
Magento\Framework\App\Config\ScopeConfigInterface’i kullanın;
Magento\Framework\App\Config\Value’yu ConfigValue olarak kullanın;
Magento\Framework\Data\Collection\AbstractDb’yi kullanın;
Magento\Framework\Model\Context’i kullanın;
Magento\Framework\Model\ResourceModel\AbstractResource’u kullanın;
Magento\Framework\Registry’yi kullanın;
Magento\Framework\Serialize\SerializerInterface’i kullanın;
ArraySerialized sınıfı ConfigValue’yu genişletiyor
{
$korumalı serileştirici;
genel işlev __build(
SerileştiriciArayüz $seri hale getirici,
Bağlam $bağlam,
$ kayıt defterini kaydet,
ScopeConfigInterface $yapılandırma,
TypeListInterface $cacheTypeList,
SoyutKaynak $kaynak = null,
AbstractDb $resourceCollection = null,
dizi $veri = []
)
{
$this->serializer = $serializer;
parent::__construct($bağlam, $kayıt defteri, $yapılandırma, $cacheTypeList, $kaynak, $kaynakCollection, $veri);
}
Save()’den önce genel işlev
{
$değer = $this->getValue();
unset($değer[‘__empty’]);
$encodedValue = $this->serializer->serialize($value);
$this->setValue($encodedValue);
}
korumalı işlev _afterLoad()
{
$değer = $this->getValue();
if ($değer) {
$decodedValue = $this->serializer->unserialize($value);
$this->setValue($decodedValue);
}
}
}