Wie kann ich mit Magento 2 programmgesteuert einen Wert in core_config_data festlegen?


12

Ich weiß, dass Sie Konfigurationsdaten in Magento 1 festlegen können mit:

Mage::getModel('core/config')->saveConfig('my/path/whatever', $value);

und Sie können Konfigurationsdaten in Magento 2 erhalten mit:

protected $_scopeConfig

public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig) {
    $this->_scopeConfig = $scopeConfig;
}

+

$this->_scopeConfig->getValue( 'path/of/config', \Magento\Store\Model\ScopeInterface::SCOPE_STORE );

Aber ich kann nicht herausfinden, wie ich Konfigurationsdaten in Magento 2 speichern kann

Antworten:


23

So sollten Sie Daten in magento2 core_config_data speichern

    use Magento\Framework\App\Config\ScopeConfigInterface;

    /**
     *  @var \Magento\Framework\App\Config\Storage\WriterInterface
     */
    protected $configWriter;

    /**
     *
     * @param \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
     */
    public function __construct(
        ....
        \Magento\Framework\App\Config\Storage\WriterInterface $configWriter
        .....
    )
    {
        $this->configWriter = $configWriter;
    }

Fügen Sie in Ihrer aufrufenden Methode die folgende Zeile hinzu:

$this->configWriter->save('my/path/whatever',  $value, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0);

6

Sie können die ConfigInterface-Klasse einfügen und zum Speichern des Werts verwenden.

protected $_configInterface;

public function __construct(
    \Magento\Framework\App\Config\ConfigResource\ConfigInterface $configInterface
) {
    $this->_configInterface = $configInterface;
}

Dann können Sie es in Ihrer Methode wie verwenden

$this->_configInterface
    ->saveConfig('section/group/field', $value, 'default', 0);

1
Tun Sie dies nicht, außer Sie sind sicher, dass Ihre Pfade nicht gekürzt werden müssen. Es wird empfohlen, den configWriter
Chuvisco
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.