プログラムでMagento 2を使用してcore_config_dataに値を設定するにはどうすればよいですか?


12

私はあなたがMagento 1で設定データを設定できることを知っています:

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

Magento 2で設定データを取得するには:

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

しかし、私はMagento 2に構成データを保存する方法を理解できません

回答:


23

これは、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;
    }

呼び出しメソッドに以下の行を追加します。

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

6

ConfigInterfaceクラスを挿入し、それを使用して値を保存できます。

protected $_configInterface;

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

それからあなたはあなたのようなあなたの方法でそれを使うことができます

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

1
パスをトリミングする必要がないことが確実な場合以外は、これを行わないでください。configWriterを使用することをお勧めします
Chuvisco
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.