Bagaimana saya bisa menetapkan nilai di core_config_data dengan Magento 2 secara terprogram?


13

Saya tahu Anda dapat mengatur data konfigurasi di Magento 1 dengan:

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

dan Anda bisa mendapatkan data konfigurasi di Magento 2 dengan:

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

Tapi saya tidak tahu, bagaimana saya bisa menyimpan data konfigurasi di Magento 2

Jawaban:


24

Ini adalah bagaimana Anda harus menyimpan data di 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;
    }

tambahkan baris berikut dalam metode panggilan Anda:

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

6

Anda bisa menyuntikkan kelas ConfigInterface dan menggunakannya untuk menyimpan nilai.

protected $_configInterface;

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

Maka Anda dapat menggunakannya dalam metode Anda suka

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

1
Jangan lakukan ini kecuali Anda yakin jalur Anda tidak perlu dipangkas. Disarankan untuk menggunakan configWriter
Chuvisco
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.