Comment puis-je définir une valeur dans core_config_data avec Magento 2 par programme?


13

Je sais que vous pouvez définir des données de configuration dans Magento 1 avec:

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

et vous pouvez obtenir des données de configuration dans Magento 2 avec:

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

Mais je ne sais pas comment sauvegarder les données de configuration dans Magento 2

Réponses:


24

Voici comment enregistrer les données dans magento2 core_config_data

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

ajoutez la ligne ci-dessous dans votre méthode d'appel:

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

6

Vous pouvez injecter la classe ConfigInterface et l'utiliser pour enregistrer la valeur.

protected $_configInterface;

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

Ensuite, vous pouvez l'utiliser dans votre méthode comme

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

1
Ne faites pas cela, sauf si vous êtes sûr que vos chemins n'ont pas besoin d'être coupés. Il est recommandé d'utiliser le configWriter
Chuvisco
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.