मैं Magento 2 को प्रोग्रामेटिक रूप से core_config_data में मान कैसे सेट कर सकता हूं?


13

मुझे पता है कि आप 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 में कॉन्फ़िगर डेटा कैसे बचा सकता हूं

जवाबों:


24

यह है कि आपको 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
इसे छोड़कर ऐसा न करें कि आप सुनिश्चित हैं कि आपके रास्तों को छंटनी की आवश्यकता नहीं है। यह विन्यासकर्ता का उपयोग करने की सिफारिश की गई है
चुविस्को
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.